{%- if module.has_functions() %}
public static class {{ module.class_name }}
{
{%- for func in module.functions %}
{%- let callable = func %}
{%- let native_method_name = func.name %}
{%- let native_call_args = func.native_call_args() %}
{%- let native_call_args_async = func.native_call_args() %}
{%- if func.is_async() %}
{%- match func.async_call %}
{%- when Some with (ac) %}
{{ self::summary_doc_block(func.summary_doc, " ") }} public static {{ func.task_return_type() }} {{ func.name }}({% for p in func.params %}{{ p.csharp_type }} {{ p.name }}{% if !loop.last %}, {% endif %}{% endfor %})
=> {{ func.name }}({% for p in func.params %}{{ p.name }}, {% endfor %}global::System.Threading.CancellationToken.None);
{{ self::summary_doc_block(func.summary_doc, " ") }} public static {{ func.task_return_type() }} {{ func.name }}({% for p in func.params %}{{ p.csharp_type }} {{ p.name }}, {% endfor %}global::System.Threading.CancellationToken cancellationToken)
{
{%- include "render_csharp/callable_setup.txt" -%}
{%- include "render_csharp/callable_open_pins.txt" -%}
{%- include "render_csharp/callable_async_return.txt" -%}
{%- include "render_csharp/callable_close_pins.txt" %}
}
{%- when None %}
{%- endmatch %}
{%- else %}
{{ self::summary_doc_block(func.summary_doc, " ") }} public static {{ func.return_type }} {{ func.name }}({% for p in func.params %}{{ p.csharp_type }} {{ p.name }}{% if !loop.last %}, {% endif %}{% endfor %})
{
{%- include "render_csharp/callable_setup.txt" -%}
{%- include "render_csharp/callable_open_pins.txt" -%}
{%- include "render_csharp/callable_sync_return.txt" -%}
{%- include "render_csharp/callable_close_pins.txt" %}
}
{%- endif %}
{% endfor %}
}
{% endif -%}