blob: a16c178e67ee653ae2aed891f8123ce7114431f0 [file] [log] [blame]
{%- macro enum_value(enum, field, index) -%}
{%- if field.value -%}
(int) ({{field.value|expression_to_text('i32')}})
{%- elif index == 0 -%}
0
{%- else -%}
{{enum.fields[index - 1]|name}} + 1
{%- endif -%}
{%- endmacro -%}
{%- macro enum_def(enum, top_level) -%}
public {{ 'static ' if not top_level }}final class {{enum|name}} {
{% for field in enum.fields %}
public static final int {{field|name}} = {{enum_value(enum, field, loop.index0)}};
{% endfor %}
private {{enum|name}}() {}
}
{%- endmacro -%}