{#- # SPDX-License-Identifier: LGPL-2.1-or-later # Copyright (C) 2020, Google Inc. -#} {# # \brief Generate enum definition # # \param enum Enum object whose definition is to be generated #} {%- macro define_enum(enum) -%} enum{{" class" if enum|is_scoped}} {{enum.mojom_name}} { {%- for field in enum.fields %} {{field.mojom_name}} = {{field.numeric_value}}, {%- endfor %} }; {%- endmacro -%} {# # \brief Generate struct definition # # \param struct Struct object whose definition is to be generated #} {%- macro define_struct(struct) -%} struct {{struct.mojom_name}} { public: #ifndef __DOXYGEN__ {{struct.mojom_name}}() {%- if struct|has_default_fields %} :{% endif %} {%- for field in struct.fields|with_default_values -%} {{" " if loop.first}}{{field.mojom_name}}({{field|default_value}}){{", " if not loop.last}} {%- endfor %} { } {{struct.mojom_name}}( {%- for field in struct.fields -%} {{"const " if not field|is_pod}}{{field|name}} {{"&" if not field|is_pod}}_{{field.mojom_name}}{{", " if not loop.last}} {%- endfor -%} ) : {%- for field in struct.fields -%} {{" " if loop.first}}{{field.mojom_name}}(_{{field.mojom_name}}){{", " if not loop.last}} {%- endfor %} { } #endif {% for field in struct.fields %} {{field|name}} {{field.mojom_name}}; {%- endfor %} }; {%- endmacro -%}