@@ -13,8 +13,7 @@ const (
1313 {{$value .PrefixedName }} {{$enumName }} = {{quote $value .ValueStr }}
1414{{- end }}
1515)
16- {{- $parseNeeded := or .mustparse .marshal .anySQLEnabled .flag -}}
17- {{- if or (not .noparse ) $parseNeeded .sqlint }}
16+ {{- if .generateError }}
1817{{if .names -}}
1918var ErrInvalid{{.enum.Name }} = fmt.Errorf (" not a valid {{.enum.Name}}, try [%s ]" , strings.Join (_{{.enum.Name }}Names, " , " ))
2019{{- else -}}
@@ -48,17 +47,12 @@ func {{.enum.Name}}Values() []{{.enum.Name}} {
4847func (x {{.enum.Name }}) String() string {
4948 return string(x)
5049}
51- {{- $parseNeeded := or .mustparse .marshal .anySQLEnabled .flag }}
52- {{- $parseName := " Parse" }}
53- {{- if and .noparse $parseNeeded }}
54- {{- $parseName = " parse" }}
55- {{- end }}
5650
5751// IsValid provides a quick way to determine if the typed value is
5852// part of the allowed enumerated values
5953func (x {{.enum.Name }}) IsValid() bool {
60- {{- if or ( not .noparse ) $parseNeeded }}
61- _, err := {{$ parseName }}{{.enum.Name }}(string(x))
54+ {{- if .generateParse }}
55+ _, err := {{. parseName }}{{.enum.Name }}(string(x))
6256 return err == nil
6357 {{- else }}
6458 _, ok := _{{.enum.Name }}Value[string(x)]
@@ -68,9 +62,9 @@ func (x {{.enum.Name}}) IsValid() bool {
6862
6963var _{{.enum.Name }}Value = {{ unmapify .enum .lowercase }}
7064
71- {{- if or ( not .noparse ) $parseNeeded }}
72- // {{$ parseName }}{{.enum.Name }} attempts to convert a string to a {{.enum.Name }}.
73- func {{$ parseName }}{{.enum.Name }}(name string) ({{.enum.Name }}, error) {
65+ {{- if .generateParse }}
66+ // {{. parseName }}{{.enum.Name }} attempts to convert a string to a {{.enum.Name }}.
67+ func {{. parseName }}{{.enum.Name }}(name string) ({{.enum.Name }}, error) {
7468 if x, ok := _{{.enum.Name }}Value[name]; ok {
7569 return x, nil
7670 }{{if .nocase }}
@@ -83,13 +77,9 @@ func {{$parseName}}{{.enum.Name}}(name string) ({{.enum.Name}}, error) {
8377{{- end }}
8478
8579{{ if .mustparse }}
86- {{- $parseName := " Parse" -}}
87- {{- if .noparse -}}
88- {{- $parseName = " parse" -}}
89- {{- end }}
9080// MustParse{{.enum.Name }} converts a string to a {{.enum.Name }}, and panics if is not valid.
9181func MustParse{{.enum.Name }}(name string) {{.enum.Name }} {
92- val, err := {{$ parseName }}{{.enum.Name }}(name)
82+ val, err := {{. parseName }}{{.enum.Name }}(name)
9383 if err != nil {
9484 panic(err)
9585 }
@@ -104,18 +94,14 @@ func (x {{.enum.Name}}) Ptr() *{{.enum.Name}} {
10494{{end }}
10595
10696{{ if .marshal }}
107- {{- $parseName := " Parse" -}}
108- {{- if .noparse -}}
109- {{- $parseName = " parse" -}}
110- {{- end }}
11197// MarshalText implements the text marshaller method.
11298func (x {{.enum.Name }}) MarshalText() ([]byte, error) {
11399 return []byte(string(x)), nil
114100}
115101
116102// UnmarshalText implements the text unmarshaller method.
117103func (x *{{.enum.Name }}) UnmarshalText(text []byte) error {
118- tmp, err := {{$ parseName }}{{.enum.Name }}(string(text))
104+ tmp, err := {{. parseName }}{{.enum.Name }}(string(text))
119105 if err != nil {
120106 return err
121107 }
@@ -138,10 +124,6 @@ var err{{.enum.Name}}NilPtr = errors.New("value pointer is nil") // one per type
138124
139125{{/* SQL stored as a string value */ }}
140126{{ if or .sql .sqlnullstr }}
141- {{- $parseName := " Parse" -}}
142- {{- if .noparse -}}
143- {{- $parseName = " parse" -}}
144- {{- end }}
145127
146128// Scan implements the Scanner interface.
147129func (x *{{.enum.Name }}) Scan(value interface{}) (err error) {
@@ -154,9 +136,9 @@ func (x *{{.enum.Name}}) Scan(value interface{}) (err error) {
154136 // driver.Value values at the top of the list for expediency
155137 switch v := value. (type) {
156138 case string:
157- *x, err = {{$ parseName }}{{.enum.Name }}(v)
139+ *x, err = {{. parseName }}{{.enum.Name }}(v)
158140 case []byte:
159- *x, err = {{$ parseName }}{{.enum.Name }}(string(v))
141+ *x, err = {{. parseName }}{{.enum.Name }}(string(v))
160142 case {{.enum.Name }}:
161143 *x = v
162144 case *{{.enum.Name }}:
@@ -168,7 +150,7 @@ func (x *{{.enum.Name}}) Scan(value interface{}) (err error) {
168150 if v == nil {
169151 return err{{.enum.Name }}NilPtr
170152 }
171- *x, err = {{$ parseName }}{{.enum.Name }}(*v)
153+ *x, err = {{. parseName }}{{.enum.Name }}(*v)
172154 default:
173155 return errors.New (" invalid type for {{.enum.Name}}" )
174156 }
@@ -184,10 +166,6 @@ func (x {{.enum.Name}}) Value() (driver.Value, error) {
184166
185167{{/* SQL stored as an integer value */ }}
186168{{ if or .sqlint .sqlnullint }}
187- {{- $parseName := " Parse" -}}
188- {{- if .noparse -}}
189- {{- $parseName = " parse" -}}
190- {{- end }}
191169var sqlInt{{.enum.Name }}Map = map[int64]{{.enum.Name }}{ {{ range $rIndex , $value := .enum.Values }}{{ if ne $value .Name " _" }}
192170{{ $value .ValueInt }}: {{ $value .PrefixedName }},{{end }}
193171{{- end }}
@@ -219,13 +197,13 @@ func (x *{{.enum.Name}}) Scan(value interface{}) (err error) {
219197 case int64:
220198 *x, err = lookupSqlInt{{.enum.Name }}(v)
221199 case string:
222- *x, err = {{$ parseName }}{{.enum.Name }}(v)
200+ *x, err = {{. parseName }}{{.enum.Name }}(v)
223201 case []byte:
224202 if val, verr := strconv.ParseInt (string(v), 10, 64); verr == nil {
225203 *x, err = lookupSqlInt{{.enum.Name }}(val)
226204 } else {
227205 // try parsing the value as a string
228- *x, err = {{$ parseName }}{{.enum.Name }}(string(v))
206+ *x, err = {{. parseName }}{{.enum.Name }}(string(v))
229207 }
230208 case {{.enum.Name }}:
231209 *x = v
@@ -271,7 +249,7 @@ func (x *{{.enum.Name}}) Scan(value interface{}) (err error) {
271249 if v == nil {
272250 return err{{.enum.Name }}NilPtr
273251 }
274- *x, err = {{$ parseName }}{{.enum.Name }}(*v)
252+ *x, err = {{. parseName }}{{.enum.Name }}(*v)
275253 default:
276254 return errors.New (" invalid type for {{.enum.Name}}" )
277255 }
@@ -292,13 +270,9 @@ func (x {{.enum.Name}}) Value() (driver.Value, error) {
292270
293271
294272{{ if .flag }}
295- {{- $parseName := " Parse" -}}
296- {{- if .noparse -}}
297- {{- $parseName = " parse" -}}
298- {{- end }}
299273// Set implements the Golang flag.Value interface func.
300274func (x *{{.enum.Name }}) Set(val string) error {
301- v, err := {{$ parseName }}{{.enum.Name }}(val)
275+ v, err := {{. parseName }}{{.enum.Name }}(val)
302276 *x = v
303277 return err
304278}
0 commit comments