Backed out 5 changesets (bug 1890092, bug 1888683) for causing build bustages & crash...
[gecko.git] / third_party / rust / uniffi_bindgen / src / bindings / swift / templates / TopLevelFunctionTemplate.swift
bloba2c6311931e4ed763e4f0f0126b72273ad8cef0f
1 {%- if func.is_async() %}
3 public func {{ func.name()|fn_name }}({%- call swift::arg_list_decl(func) -%}) async {% call swift::throws(func) %}{% match func.return_type() %}{% when Some with (return_type) %} -> {{ return_type|type_name }}{% when None %}{% endmatch %} {
4     return {% call swift::try(func) %} await uniffiRustCallAsync(
5         rustFutureFunc: {
6             {{ func.ffi_func().name() }}(
7                 {%- for arg in func.arguments() %}
8                 {{ arg|lower_fn }}({{ arg.name()|var_name }}){% if !loop.last %},{% endif %}
9                 {%- endfor %}
10             )
11         },
12         pollFunc: {{ func.ffi_rust_future_poll(ci) }},
13         completeFunc: {{ func.ffi_rust_future_complete(ci) }},
14         freeFunc: {{ func.ffi_rust_future_free(ci) }},
15         {%- match func.return_type() %}
16         {%- when Some(return_type) %}
17         liftFunc: {{ return_type|lift_fn }},
18         {%- when None %}
19         liftFunc: { $0 },
20         {%- endmatch %}
21         {%- match func.throws_type() %}
22         {%- when Some with (e) %}
23         errorHandler: {{ e|ffi_converter_name }}.lift
24         {%- else %}
25         errorHandler: nil
26         {% endmatch %}
27     )
30 {% else %}
32 {%- match func.return_type() -%}
33 {%- when Some with (return_type) %}
35 public func {{ func.name()|fn_name }}({%- call swift::arg_list_decl(func) -%}) {% call swift::throws(func) %} -> {{ return_type|type_name }} {
36     return {% call swift::try(func) %} {{ return_type|lift_fn }}(
37         {% call swift::to_ffi_call(func) %}
38     )
41 {%- when None %}
43 public func {{ func.name()|fn_name }}({% call swift::arg_list_decl(func) %}) {% call swift::throws(func) %} {
44     {% call swift::to_ffi_call(func) %}
47 {% endmatch %}
48 {%- endif %}