35 lines
606 B
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
|
|
}
|