You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// {{{classname}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}} {{{description}}}{{^description}}the model '{{{classname}}}'{{/description}}
284
+
type {{{classname}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}} {{dataType}}
285
+
286
+
// List of {{name}}
287
+
const (
288
+
{{#allowableValues}}
289
+
{{#enumVars}}
290
+
{{^-first}}
291
+
{{/-first}}
292
+
{{! Tweak to get the name in the correct format. Name can not directly passed like in the type, because it would use the enum name }}
var Allowed{{{classname}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}}EnumValues = []{{{classname}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}}{
300
+
{{#allowableValues}}
301
+
{{#enumVars}}
302
+
{{{value}}},
303
+
{{/enumVars}}
304
+
{{/allowableValues}}
305
+
}
306
+
307
+
func (v *{{{classname}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}}) UnmarshalJSON(src []byte) error {
308
+
var value {{dataType}}
309
+
err := json.Unmarshal(src, &value)
310
+
if err != nil {
311
+
return err
312
+
}
313
+
// Allow unmarshalling zero value for testing purposes
for _, existing := range Allowed{{{classname}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}}EnumValues {
320
+
if existing == enumTypeValue {
321
+
*v = enumTypeValue
322
+
return nil
323
+
}
324
+
}
325
+
326
+
return fmt.Errorf("%+v is not a valid {{classname}}", value)
327
+
}
328
+
329
+
// New{{{classname}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}}FromValue returns a pointer to a valid {{{classname}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}}
330
+
// for the value passed as argument, or an error if the value passed is not allowed by the enum
ev := {{{classname}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}}(v)
333
+
if ev.IsValid() {
334
+
return &ev, nil
335
+
} else {
336
+
return nil, fmt.Errorf("invalid value '%v' for {{{classname}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}}: valid values are %v", v, Allowed{{{classname}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}}EnumValues)
337
+
}
338
+
}
339
+
340
+
// IsValid return true if the value is valid for the enum, false otherwise
341
+
func (v {{{classname}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}}) IsValid() bool {
342
+
for _, existing := range Allowed{{{classname}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}}EnumValues {
343
+
if existing == v {
344
+
return true
345
+
}
346
+
}
347
+
return false
348
+
}
349
+
350
+
// Ptr returns reference to {{{name}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}} value
351
+
func (v {{{classname}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}}) Ptr() *{{{classname}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}} {
352
+
return &v
353
+
}
354
+
355
+
type Nullable{{{classname}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}} struct {
356
+
value *{{{classname}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}}
357
+
isSet bool
358
+
}
359
+
360
+
func (v Nullable{{classname}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}}) Get() *{{classname}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}} {
361
+
return v.value
362
+
}
363
+
364
+
func (v *Nullable{{classname}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}}) Set(val *{{classname}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}}) {
365
+
v.value = val
366
+
v.isSet = true
367
+
}
368
+
369
+
func (v Nullable{{classname}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}}) IsSet() bool {
370
+
return v.isSet
371
+
}
372
+
373
+
func (v *Nullable{{classname}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}}) Unset() {
var {{nameInCamelCase}} {{{classname}}}{{#lambda.titlecase}}{{nameInCamelCase}}{{/lambda.titlecase}} = {{{.}}}
679
+
{{/isEnum}}
680
+
{{^isEnum}}
545
681
{{!we use datatypeWithEnum here, since it will represent the non-nullable name of the datatype, e.g. int64 for NullableInt64}}
546
682
var {{nameInCamelCase}} {{#isInteger}}int64{{/isInteger}}{{#isNumber}}float64{{/isNumber}}{{^isNumber}}{{^isInteger}}{{dataType}}{{/isInteger}}{{/isNumber}} = {{{.}}}
0 commit comments