OLD | NEW |
1 {#--- | 1 {#--- |
2 Macro for enum definition, and the declaration of associated functions. | 2 Macro for enum definition, and the declaration of associated functions. |
3 ---#} | 3 ---#} |
4 {%- macro enum_decl(enum) %} | 4 {%- macro enum_decl(enum) %} |
5 enum class {{enum.name}} : int32_t { | 5 enum class {{enum.name}} : int32_t { |
6 {%- for field in enum.fields %} | 6 {%- for field in enum.fields %} |
7 {%- if field.value %} | 7 {%- if field.value %} |
8 {{field.name}} = {{field.value|expression_to_text}}, | 8 {{field.name}} = {{field.value|expression_to_text}}, |
9 {%- else %} | 9 {%- else %} |
10 {{field.name}}, | 10 {{field.name}}, |
(...skipping 12 matching lines...) Expand all Loading... |
23 switch (value) { | 23 switch (value) { |
24 {%- for enum_field in enum.fields|groupby('numeric_value') %} | 24 {%- for enum_field in enum.fields|groupby('numeric_value') %} |
25 case {{enum_field[0]}}: | 25 case {{enum_field[0]}}: |
26 {%- endfor %} | 26 {%- endfor %} |
27 return true; | 27 return true; |
28 } | 28 } |
29 {%- endif %} | 29 {%- endif %} |
30 return false; | 30 return false; |
31 } | 31 } |
32 | 32 |
33 static bool Validate(int32_t value) { | 33 static bool Validate(int32_t value, |
| 34 mojo::internal::ValidationContext* validation_context) { |
34 if (kIsExtensible || IsKnownValue(value)) | 35 if (kIsExtensible || IsKnownValue(value)) |
35 return true; | 36 return true; |
36 | 37 |
37 ReportValidationError(mojo::internal::VALIDATION_ERROR_UNKNOWN_ENUM_VALUE); | 38 ReportValidationError(validation_context, |
| 39 mojo::internal::VALIDATION_ERROR_UNKNOWN_ENUM_VALUE); |
38 return false; | 40 return false; |
39 } | 41 } |
40 }; | 42 }; |
41 {%- endmacro %} | 43 {%- endmacro %} |
42 | 44 |
43 {#--- macros for enum-associated functions. Namely: | 45 {#--- macros for enum-associated functions. Namely: |
44 * operator<<(): outputs the given enum value. | 46 * operator<<(): outputs the given enum value. |
45 * IsKnownEnumValue(): returns true if the given enum value exists in this | 47 * IsKnownEnumValue(): returns true if the given enum value exists in this |
46 generated version of enum. | 48 generated version of enum. |
47 ---#} | 49 ---#} |
(...skipping 18 matching lines...) Expand all Loading... |
66 } | 68 } |
67 } | 69 } |
68 {%- endmacro %} | 70 {%- endmacro %} |
69 | 71 |
70 {%- macro is_known_enum_value(enum) %} | 72 {%- macro is_known_enum_value(enum) %} |
71 inline bool IsKnownEnumValue({{enum|get_name_for_kind}} value) { | 73 inline bool IsKnownEnumValue({{enum|get_name_for_kind}} value) { |
72 return {{enum|get_qualified_name_for_kind(internal=True)}}::IsKnownValue( | 74 return {{enum|get_qualified_name_for_kind(internal=True)}}::IsKnownValue( |
73 static_cast<int32_t>(value)); | 75 static_cast<int32_t>(value)); |
74 } | 76 } |
75 {%- endmacro %} | 77 {%- endmacro %} |
OLD | NEW |