1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
-- 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
|