owobot/internal/systems/plugins/field_mapper.go

35 lines
606 B
Go

package plugins
import (
"reflect"
"strings"
"unicode"
)
type lowerCamelNameMapper struct{}
func (lowerCamelNameMapper) FieldName(_ reflect.Type, f reflect.StructField) string {
return toLowerCamel(f.Name)
}
func (lowerCamelNameMapper) MethodName(_ reflect.Type, m reflect.Method) string {
return toLowerCamel(m.Name)
}
func toLowerCamel(name string) string {
if isUpper(name) {
return strings.ToLower(name)
} else {
return strings.ToLower(name[:1]) + name[1:]
}
}
func isUpper(s string) bool {
for _, char := range s {
if unicode.IsLower(char) {
return false
}
}
return true
}