blob: c979f59434ba74a58c054c44f5dc602af0e6ddca [file] [log] [blame]
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
{%- macro enum_values(enum) -%}
[
{% for field in enum.fields %}
('{{field.name}}', {{field.resolved_value}}),
{% endfor %}
]
{%- endmacro -%}
{%- macro struct_descriptor(struct) -%}
{
{% if struct.constants %}
'constants': {
{% for constant in struct.constants %}
'{{constant|name}}': {{constant.value|expression_to_text}},
{% endfor %}
},
{% endif %}
{% if struct.enums %}
'enums': {
{% for enum in struct.enums %}
'{{enum|name}}': {{enum_values(enum)|indent(6)}},
{% endfor %}
},
{% endif %}
{% if struct.fields %}
'fields': [
{% for byte in struct.bytes %}
{% if byte.packed_fields %}
{{byte|field_group}},
{% endif %}
{% endfor %}
],
{% endif %}
}
{%- endmacro -%}
{%- macro union_descriptor(union) -%}
{
'fields': [
{% for field in union.fields %}
{{field|union_field_descriptor}},
{% endfor %}
],
}
{%- endmacro -%}