-
Notifications
You must be signed in to change notification settings - Fork 138
Open
Description
Given an input like
{
"$schema" : "http://json-schema.org/draft-04/schema#",
"title" : "myObject",
"type" : "object",
"additionalProperties" : false,
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "x", "y", "z" ],
"default" : "x"
}
}this would currently get generated like
type MyObject {
Type string `json:"type"`
}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.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels