{% macro genenum(enum) %}
py::enum_<{{ enum.x_namespace }}{{ enum.name }}>(m, "{{ enum.name }}")
  {% for val in enum['values'] %}
    .value("{{ val.name }}", {{ enum.x_namespace }}{{ enum.name }}::{{ val.name }})
  {% endfor %};
{% endmacro %}


{% for header in headers %}
{% for enum in header.enums %}
  {{ genenum(enum) }}
{% endfor %}
{% for cls in header.classes %}
{% for enum in cls.enums.public %}
  {{ genenum(enum) }}
{% endfor %}
{% endfor %}
{% endfor %}
