-- schema.cue -- enum: { [string]: {"foo", #enumValue: 1} | {"bar", #enumValue: 2} @protobuf(1,Enum) } defEnum: { [string]: #foo | #bar @protobuf(2,Enum) } #foo: 1 #bar: 2 typeEnum: { [string]: #Enum @protobuf(3,Enum) } #Enum: #foo | #bar // TODO: consider supporting @symbol(foo) or @json(,symbol=foo) // symbolEnum: [string]: // { 1, @symbol(foo) } | // { 2, @symbol(bar) } singleEnum: #single @protobuf(3,Enum) #single: 1 badEnum: {string, #enumValue: 1} | {"two", #enumValue: 2} -- value.cue -- enum: asIs: "foo" enum: asIsUnknown: "foobar" // Convert integers to strings defEnum: foo: 1 defEnum: bar: 2 defEnum: baz: 3 typeEnum: foo: 1 typeEnum: bar: 2 typeEnum: baz: 3 // TODO: consider supporting @symbol(foo) or @json(,symbol=foo) // symbolEnum: foo: "foo" // symbolEnum: bar: "bar" // symbolEnum: baz: "baz" singleEnum: 1 -- out/jsonpb -- enum: asIs: "foo" enum: asIsUnknown: "foobar" // Convert integers to strings defEnum: foo: "foo" defEnum: bar: "bar" defEnum: baz: 3 typeEnum: foo: "foo" typeEnum: bar: "bar" typeEnum: baz: 3 // TODO: consider supporting @symbol(foo) or @json(,symbol=foo) // symbolEnum: foo: "foo" // symbolEnum: bar: "bar" // symbolEnum: baz: "baz" singleEnum: 1