...
1-- schema.cue --
2enum: [string]:
3 {"foo", #enumValue: 1} |
4 {"bar", #enumValue: 2}
5
6defEnum: [string]: #foo | #bar
7
8#foo: 1
9#bar: 2
10
11typeEnum: [string]: #Enum
12
13#Enum: #foo | #bar
14
15// TODO: consider supporting @symbol(foo) or @json(,symbol=foo)
16// symbolEnum: [string]:
17// { 1, @symbol(foo) } |
18// { 2, @symbol(bar) }
19
20singleEnum: {"single", #enumValue: 1}
21
22badEnum: {string, #enumValue: 1} | {"two", #enumValue: 2}
23-- data.cue --
24enum: asIs: "foo"
25enum: asIsUnknown: "foobar"
26
27// Convert integers to string
28enum: numExistFoo: 1
29enum: numExistBar: 2
30
31// Convert strings to integer
32defEnum: foo: "foo"
33defEnum: bar: "bar"
34defEnum: baz: "baz" // unavailable
35
36typeEnum: foo: "foo"
37typeEnum: bar: "bar"
38typeEnum: baz: "baz" // unavailable
39
40// TODO: consider supporting @symbol(foo) or @json(,symbol=foo)
41// symbolEnum: foo: "foo"
42// symbolEnum: bar: "bar"
43// symbolEnum: baz: "baz"
44
45singleEnum: 1
46-- errors.cue --
47enum: numNotExists: 3
48
49enum: numNotExists: 4
50
51enum: tooLarge: 4_111_222_333_444_555_666_777_888_999
52
53badEnum: 1
54-- out/jsonpb/data.cue --
55enum: asIs: "foo"
56enum: asIsUnknown: "foobar"
57
58// Convert integers to string
59enum: numExistFoo: "foo"
60enum: numExistBar: "bar"
61
62// Convert strings to integer
63defEnum: foo: 1
64defEnum: bar: 2
65defEnum: baz: "baz" // unavailable
66
67typeEnum: foo: 1
68typeEnum: bar: 2
69typeEnum: baz: "baz" // unavailable
70
71// TODO: consider supporting @symbol(foo) or @json(,symbol=foo)
72// symbolEnum: foo: "foo"
73// symbolEnum: bar: "bar"
74// symbolEnum: baz: "baz"
75
76singleEnum: "single"
77-- out/jsonpb/errors.cue --
78enum.numNotExists: could not locate integer enum value 3:
79 errors.cue:1:21
80enum.numNotExists: could not locate integer enum value 4:
81 errors.cue:3:21
82enum.tooLarge: invalid enum index: 4111222333444555666777888999: greater than max int64:
83 errors.cue:5:17
84badEnum: invalid string enum: non-concrete value string:
85 schema.cue:21:10
86 schema.cue:21:11
View as plain text