{% import "render_macros.j2" as macros %}
service {{+ self.name +}} {
{% filter indent(2) %}
{%~ for option in self.options.iter() ~%}
option {{+ option.name +}} = {{+ option.value }};
{% endfor %}
{% endfilter %}
{% call macros::empty_line_if(!self.options.is_empty()) %}{% endcall %}
{% for handler in self.handlers ~%}
{% filter indent(2) ~%}
rpc {{+ handler.name +}} ({% if handler.request.is_stream %}stream {%+ endif %}{{ handler.request.message.render_name(self.package) }}) returns ({% if handler.response.is_stream %}stream {%+ endif %}{{ handler.response.message.render_name(self.package) }})
{%- if !handler.options.is_empty() +%} {
{% filter indent(2) %}
{%~ for option in self.options ~%}
option {{+ option.name +}} = {{+ option.value }};
{% endfor +%}
{% endfilter +%}
}
{% endif %};
{% endfilter %}
{% endfor ~%}
}