Skip to content

Commit 3dcc55e

Browse files
committed
internal/codegen: add Enum.Valid and AllEnumValues
This commit adds a Valid method for enum types and an All...Values function to get all enum values. This makes it easier to work with enums. Fixes #1607
1 parent 52b6bb4 commit 3dcc55e

File tree

25 files changed

+336
-0
lines changed

25 files changed

+336
-0
lines changed

examples/batch/postgresql/models.go

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/booktest/mysql/models.go

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/booktest/postgresql/models.go

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/ondeck/mysql/models.go

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/ondeck/postgresql/models.go

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/codegen/golang/templates/template.tmpl

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,18 @@ func (e *{{.Name}}) Scan(src interface{}) error {
8686
}
8787
return nil
8888
}
89+
90+
func (e {{.Name}}) Valid() bool {
91+
switch e {
92+
case {{ range $idx, $name := .Constants}}{{ if gt $idx 0 }},{{ end }}{{.Name}}{{ end }}:
93+
return true
94+
}
95+
return false
96+
}
97+
98+
func All{{ .Name }}Values() []{{ .Name }} {
99+
return []{{ .Name }}{ {{ range .Constants}}{{ .Name }}, {{ end }} }
100+
}
89101
{{end}}
90102

91103
{{range .Structs}}

internal/endtoend/testdata/comment_on/postgresql/pgx/go/models.go

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/comment_on/postgresql/stdlib/go/models.go

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/ddl_alter_type_add_value/postgresql/pgx/go/models.go

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/ddl_alter_type_add_value/postgresql/stdlib/go/models.go

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)