move gotd fork into repo. (#111)

- update to latest telegram layer
- remove some references to fields in tg.Entities that don't exist in
the schema
- originally added here:
https://github.com/beeper/td/commit/820929062a2ba0104397bc01235ab58a9cff780e
  - referenced here
-
https://github.com/mautrix/telegramgo/commit/124f0967ed195b5a380c9bd02e170ada9710dde3
-
https://github.com/mautrix/telegramgo/commit/4205047aab2e0639217148b5d125bfaab668bd8e
This commit is contained in:
Adam Van Ymeren
2025-06-27 20:03:37 -07:00
committed by GitHub
parent 0952df0244
commit 7a04f298d2
19264 changed files with 1539697 additions and 84 deletions
+110
View File
@@ -0,0 +1,110 @@
package gen
import (
"embed"
"strings"
"text/template"
)
var goKeywords = map[string]struct{}{
// See https://golang.org/ref/spec#Keywords.
"break": {},
"default": {},
"func": {},
"interface": {},
"select": {},
"case": {},
"defer": {},
"go": {},
"map": {},
"struct": {},
"chan": {},
"else": {},
"goto": {},
"package": {},
"switch": {},
"const": {},
"fallthrough": {},
"if": {},
"range": {},
"type": {},
"continue": {},
"for": {},
"import": {},
"return": {},
"var": {},
// Not really keyword, but unlikely to shadow.
// See go/types/universe.go.
"append": {},
"cap": {},
"close": {},
"complex": {},
"copy": {},
"delete": {},
"imag": {},
"len": {},
"make": {},
"new": {},
"panic": {},
"print": {},
"println": {},
"real": {},
"recover": {},
}
// Funcs returns functions which used in templates.
func Funcs() template.FuncMap {
return template.FuncMap{
"trim": strings.TrimSpace,
"lower": strings.ToLower,
"trimPrefix": strings.TrimPrefix,
"trimSuffix": strings.TrimSuffix,
"hasPrefix": strings.HasPrefix,
"hasSuffix": strings.HasSuffix,
"contains": strings.Contains,
"hasField": hasField,
"optionalField": optionalField,
"mapCollectableFields": mapCollectableFields,
"sortableFields": sortableFields,
"generateSliceHelper": generateSliceHelper,
"concat": func(args ...interface{}) []interface{} {
return args
},
"add": func(x, y int) int {
return x + y
},
"notEmpty": func(s string) bool {
return strings.TrimSpace(s) != ""
},
"lowerGo": func(input string) string {
lower := strings.ToLower(input)
if _, ok := goKeywords[lower]; ok {
return lower + "_"
}
return lower
},
"hasFlags": func(def structDef) bool {
for _, field := range def.Fields {
if field.Type == flagsType {
return true
}
}
return false
},
// Argument constructors
"newStructConfig": newStructConfig,
"newInterfaceConfig": newInterfaceConfig,
}
}
//go:embed _template/*.tmpl
var templates embed.FS
// Template parses and returns vendored code generation templates.
func Template() *template.Template {
tmpl := template.New("templates").Funcs(Funcs())
tmpl = template.Must(tmpl.ParseFS(templates, "_template/*.tmpl"))
return tmpl
}