OLD | NEW |
| (Empty) |
1 {%- macro enum_def(enum, typepkg, package) %} | |
2 class {{enum|name}} extends bindings.MojoEnum { | |
3 {%- for field in enum.fields %} | |
4 static const {{enum|name}} {{field|name}} = const {{enum|name}}._({{field.reso
lved_value}}); | |
5 {%- endfor %} | |
6 | |
7 const {{enum|name}}._(int v) : super(v); | |
8 | |
9 static const Map<String, {{enum|name}}> valuesMap = const { | |
10 {%- for field in enum.fields %} | |
11 "{{field|name}}": {{field|name}}, | |
12 {%- endfor %} | |
13 }; | |
14 static const List<{{enum|name}}> values = const [ | |
15 {%- for field in enum.fields %} | |
16 {{field|name}}, | |
17 {%- endfor %} | |
18 ]; | |
19 | |
20 static {{enum|name}} valueOf(String name) => valuesMap[name]; | |
21 | |
22 factory {{enum|name}}(int v) { | |
23 switch (v) { | |
24 {%- for field in enum.fields %} | |
25 case {{field.resolved_value}}: | |
26 return {{enum|name}}.{{field|name}}; | |
27 {%- endfor %} | |
28 default: | |
29 return null; | |
30 } | |
31 } | |
32 | |
33 static {{enum|name}} decode(bindings.Decoder decoder0, int offset) { | |
34 int v = decoder0.decodeUint32(offset); | |
35 {{enum|name}} result = new {{enum|name}}(v); | |
36 if (result == null) { | |
37 throw new bindings.MojoCodecError( | |
38 'Bad value $v for enum {{enum|name}}.'); | |
39 } | |
40 return result; | |
41 } | |
42 | |
43 String toString() { | |
44 switch(this) { | |
45 {%- for field in enum.fields %} | |
46 case {{field|name}}: | |
47 return '{{enum|name}}.{{field|name}}'; | |
48 {%- endfor %} | |
49 default: | |
50 return null; | |
51 } | |
52 } | |
53 | |
54 int toJson() => mojoEnumValue; | |
55 } | |
56 | |
57 {%- endmacro %} | |
OLD | NEW |