blob: 7273287b6567a37e6652d120d030a0e07522957f [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 -%}