...
1-- schema.cue --
2enum: {
3 [string]:
4 {"foo", #enumValue: 1} |
5 {"bar", #enumValue: 2} @protobuf(1,Enum)
6}
7
8defEnum: {
9 [string]: #FOO | #BAR @protobuf(2,Enum)
10}
11
12#FOO: 1
13#BAR: 2
14
15typeEnum: {
16 [string]: #Enum @protobuf(3,Enum)
17}
18
19#Enum: #FOO | #BAR | 3
20
21// TODO: consider supporting @symbol(foo) or @json(,symbol=foo)
22// symbolEnum: [string]:
23// { 1, @symbol(foo) } |
24// { 2, @symbol(bar) }
25
26singleEnum: #single @protobuf(3,Enum)
27
28#single: 1
29
30badEnum: {string, #enumValue: 1} | {"two", #enumValue: 2}
31-- value.cue --
32enum: asIs: "foo"
33
34// Convert integers to strings
35defEnum: foo: 1
36defEnum: bar: 2
37
38typeEnum: foo: 1
39typeEnum: bar: 2
40typeEnum: baz: 3
41
42// TODO: consider supporting @symbol(foo) or @json(,symbol=foo)
43// symbolEnum: foo: "foo"
44// symbolEnum: bar: "bar"
45// symbolEnum: baz: "baz"
46
47singleEnum: 1
48-- out/jsonpb --
49enum: asIs: "foo"
50enum: asIsUnknown: "foobar"
51
52// Convert integers to strings
53defEnum: foo: "foo"
54defEnum: bar: "bar"
55defEnum: baz: 3
56
57// TODO: consider supporting @symbol(foo) or @json(,symbol=foo)
58// symbolEnum: foo: "foo"
59// symbolEnum: bar: "bar"
60// symbolEnum: baz: "baz"
61
62singleEnum: "single"
63-- out/encode --
64enum: {
65 asIs: "foo"
66}
67defEnum: {
68 # Convert integers to strings
69 foo: FOO
70 bar: BAR
71}
72typeEnum: {
73 foo: FOO
74 bar: BAR
75 baz: 3
76}
77singleEnum: single
View as plain text