It'd be really handy to generate a type for the enum, such as:
type MyObjectType string
const (
MyObjectType_X MyObjectType = "x"
MyObjectType_Y = "y"
MyObjectType_Z = "z"
)
type MyObject {
Type MyObjectType `json:"type"`
}
Where MyObjectType would have a MarshalJSON/UnmarshalJSON that validated that the value was a valid MyObjectType, and produce an error if it was not.
If there's concerns about backwards compatibility, some additional niceties might be to keep the Type field as a string, but add validation to MarshalJSON/UnmarshalJSON to ensure it's a valid value, and error if it was not.
This is something I can probably dedicate a little bit of time into imlpementing, but I'm not sure what approach would be best in the eyes of the maintainer, or if there are other options I hadn't considered that may be desirable.
Given an input like
this would currently get generated like
It'd be really handy to generate a type for the enum, such as:
Where
MyObjectType
would have aMarshalJSON
/UnmarshalJSON
that validated that the value was a validMyObjectType
, and produce an error if it was not.If there's concerns about backwards compatibility, some additional niceties might be to keep the
Type
field as a string, but add validation toMarshalJSON
/UnmarshalJSON
to ensure it's a valid value, and error if it was not.This is something I can probably dedicate a little bit of time into imlpementing, but I'm not sure what approach would be best in the eyes of the maintainer, or if there are other options I hadn't considered that may be desirable.