package binapigen
import (
+ "go/token"
"strings"
"unicode"
+ "unicode/utf8"
)
// commonInitialisms is a set of common initialisms that need to stay in upper case.
}
func usesInitialism(s string) string {
- if u := strings.ToUpper(s); commonInitialisms[u] {
+ u := strings.ToUpper(s)
+ if commonInitialisms[u] {
return u
} else if su, ok := specialInitialisms[u]; ok {
return su
}
return string(runes)
}
+
+// sanitizedName returns the string converted into a valid Go identifier.
+func sanitizedName(s string) string {
+ r, _ := utf8.DecodeRuneInString(s)
+ if token.Lookup(s).IsKeyword() || !unicode.IsLetter(r) {
+ return s + "s"
+ }
+ return s
+}