{% macro generateInterfaceClass() -%} class { {%- for method in interface.methods %} /** {%- for parameter in method.parameters %} * @param { {{parameter.kind|closure_type_with_nullability}} } {{parameter.name|sanitize_identifier}} {%- endfor -%} {%- if method.response_parameters != None %} * @return {Promise} {%- endif %} */ {{method.name}}( {%- for parameter in method.parameters -%} {{parameter.name|sanitize_identifier}}{% if not loop.last %}, {% endif %} {%- endfor -%} ) {} {%- endfor %} }; {%- endmacro %} /** * @const * @type { !mojo.Interface }; */ {{module.namespace}}.{{interface.name}}; /** @interface */ {{module.namespace}}.{{interface.name}}Impl = {{ generateInterfaceClass() }} /** * @implements { mojo.InterfacePtr } * @implements { {{module.namespace}}.{{interface.name}}Impl } */ {{module.namespace}}.{{interface.name}}Ptr = {{ generateInterfaceClass() }}