/
githubmirror
/
sqlc
Обзор
Документация
Войти
/
githubmirror
/
sqlc
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
internal/codegen/golang/struct.go
49 строк
944 B
Kyle Gray
feat(golang): Add initialisms configuration (#3308)
02 апр 2024, 03:11
Не верифицирован
02 апр 2024, 03:11
3894823
Код
Авторство
О чём код?
package golang import ( "strings" "unicode" "unicode/utf8" "github.com/sqlc-dev/sqlc/internal/codegen/golang/opts" "github.com/sqlc-dev/sqlc/internal/plugin" ) type Struct struct { Table *plugin.Identifier Name string Fields []Field Comment string } func StructName(name string, options *opts.Options) string { if rename := options.Rename[name]; rename != "" { return rename } out := "" name = strings.Map(func(r rune) rune { if unicode.IsLetter(r) { return r } if unicode.IsDigit(r) { return r } return rune('_') }, name) for _, p := range strings.Split(name, "_") { if _, found := options.InitialismsMap[p]; found { out += strings.ToUpper(p) } else { out += strings.Title(p) } } // If a name has a digit as its first char, prepand an underscore to make it a valid Go name. r, _ := utf8.DecodeRuneInString(out) if unicode.IsDigit(r) { return "_" + out } else { return out } }