97 lines
2.4 KiB
Plaintext
97 lines
2.4 KiB
Plaintext
|
// Code generated by enum-generate.go DO NOT EDIT.
|
||
|
|
||
|
package {{.PkgName}}
|
||
|
|
||
|
import "gogs.mikescher.com/BlackForestBytes/goext/langext"
|
||
|
import "gogs.mikescher.com/BlackForestBytes/goext/enums"
|
||
|
|
||
|
const ChecksumEnumGenerator = "{{.Checksum}}" // GoExtVersion: {{.GoextVersion}}
|
||
|
|
||
|
{{range .Enums}}
|
||
|
|
||
|
{{ $hasStr := ( . | hasStr ) }}
|
||
|
{{ $hasDescr := ( . | hasDescr ) }}
|
||
|
|
||
|
// ================================ {{.EnumTypeName}} ================================
|
||
|
//
|
||
|
// File: {{.FileRelative}}
|
||
|
// StringEnum: {{$hasStr | boolToStr}}
|
||
|
// DescrEnum: {{$hasDescr | boolToStr}}
|
||
|
//
|
||
|
|
||
|
var __{{.EnumTypeName}}Values = []{{.EnumTypeName}}{ {{range .Values}}
|
||
|
{{.VarName}}, {{end}}
|
||
|
}
|
||
|
|
||
|
{{if $hasDescr}}
|
||
|
var __{{.EnumTypeName}}Descriptions = map[{{.EnumTypeName}}]string{ {{range .Values}}
|
||
|
{{.VarName}}: "{{.Description | deref | trimSpace}}", {{end}}
|
||
|
}
|
||
|
{{end}}
|
||
|
|
||
|
var __{{.EnumTypeName}}Varnames = map[{{.EnumTypeName}}]string{ {{range .Values}}
|
||
|
{{.VarName}}: "{{.VarName}}", {{end}}
|
||
|
}
|
||
|
|
||
|
func (e {{.EnumTypeName}}) Valid() bool {
|
||
|
return langext.InArray(e, __{{.EnumTypeName}}Values)
|
||
|
}
|
||
|
|
||
|
func (e {{.EnumTypeName}}) Values() []{{.EnumTypeName}} {
|
||
|
return __{{.EnumTypeName}}Values
|
||
|
}
|
||
|
|
||
|
func (e {{.EnumTypeName}}) ValuesAny() []any {
|
||
|
return langext.ArrCastToAny(__{{.EnumTypeName}}Values)
|
||
|
}
|
||
|
|
||
|
func (e {{.EnumTypeName}}) ValuesMeta() []enums.EnumMetaValue {
|
||
|
return {{.EnumTypeName}}ValuesMeta()
|
||
|
}
|
||
|
|
||
|
{{if $hasStr}}
|
||
|
func (e {{.EnumTypeName}}) String() string {
|
||
|
return string(e)
|
||
|
}
|
||
|
{{end}}
|
||
|
|
||
|
{{if $hasDescr}}
|
||
|
func (e {{.EnumTypeName}}) Description() string {
|
||
|
if d, ok := __{{.EnumTypeName}}Descriptions[e]; ok {
|
||
|
return d
|
||
|
}
|
||
|
return ""
|
||
|
}
|
||
|
{{end}}
|
||
|
|
||
|
func (e {{.EnumTypeName}}) VarName() string {
|
||
|
if d, ok := __{{.EnumTypeName}}Varnames[e]; ok {
|
||
|
return d
|
||
|
}
|
||
|
return ""
|
||
|
}
|
||
|
|
||
|
func (e {{.EnumTypeName}}) Meta() enums.EnumMetaValue {
|
||
|
{{if $hasDescr}} return enums.EnumMetaValue{VarName: e.VarName(), Value: e, Description: langext.Ptr(e.Description())} {{else}} return enums.EnumMetaValue{VarName: e.VarName(), Value: e, Description: nil} {{end}}
|
||
|
}
|
||
|
|
||
|
func Parse{{.EnumTypeName}}(vv string) ({{.EnumTypeName}}, bool) {
|
||
|
for _, ev := range __{{.EnumTypeName}}Values {
|
||
|
if string(ev) == vv {
|
||
|
return ev, true
|
||
|
}
|
||
|
}
|
||
|
return "", false
|
||
|
}
|
||
|
|
||
|
func {{.EnumTypeName}}Values() []{{.EnumTypeName}} {
|
||
|
return __{{.EnumTypeName}}Values
|
||
|
}
|
||
|
|
||
|
func {{.EnumTypeName}}ValuesMeta() []enums.EnumMetaValue {
|
||
|
return []enums.EnumMetaValue{ {{range .Values}}
|
||
|
{{.VarName}}.Meta(), {{end}}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
{{end}}
|