-- 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 | 3 // 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" // Convert integers to strings defEnum: foo: 1 defEnum: bar: 2 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 // TODO: consider supporting @symbol(foo) or @json(,symbol=foo) // symbolEnum: foo: "foo" // symbolEnum: bar: "bar" // symbolEnum: baz: "baz" singleEnum: "single" -- out/encode -- enum: { asIs: "foo" } defEnum: { # Convert integers to strings foo: FOO bar: BAR } typeEnum: { foo: FOO bar: BAR baz: 3 } singleEnum: single