1{%- macro enum_value(enum, field, index) -%} 2{%- if field.value -%} 3(int) ({{field.value|expression_to_text('i32')}}) 4{%- elif index == 0 -%} 50 6{%- else -%} 7{{enum.fields[index - 1].name}} + 1 8{%- endif -%} 9{%- endmacro -%} 10 11{%- macro enum_def(enum, top_level) -%} 12public {{ 'static ' if not top_level }}final class {{enum|name}} { 13 14{% for field in enum.fields %} 15 public static final int {{field.name}} = {{enum_value(enum, field, loop.index0)}}; 16{% endfor %} 17 18 private {{enum|name}}() {} 19 20} 21{%- endmacro -%} 22