blob: f258b60a1c0ac715507357e24f8ccbb1ad527129 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
{%- if func.is_async() %}
def {{ func.name()|fn_name }}({%- call py::arg_list_decl(func) -%}):
return _uniffi_rust_call_async(
_UniffiLib.{{ func.ffi_func().name() }}({% call py::arg_list_lowered(func) %}),
_UniffiLib.{{func.ffi_rust_future_poll(ci) }},
_UniffiLib.{{func.ffi_rust_future_complete(ci) }},
_UniffiLib.{{func.ffi_rust_future_free(ci) }},
# lift function
{%- match func.return_type() %}
{%- when Some(return_type) %}
{{ return_type|lift_fn }},
{%- when None %}
lambda val: None,
{% endmatch %}
# Error FFI converter
{%- match func.throws_type() %}
{%- when Some(e) %}
{{ e|ffi_converter_name }},
{%- when None %}
None,
{%- endmatch %}
)
{%- else %}
{%- match func.return_type() -%}
{%- when Some with (return_type) %}
def {{ func.name()|fn_name }}({%- call py::arg_list_decl(func) -%}) -> "{{ return_type|type_name }}":
{%- call py::setup_args(func) %}
return {{ return_type|lift_fn }}({% call py::to_ffi_call(func) %})
{% when None %}
def {{ func.name()|fn_name }}({%- call py::arg_list_decl(func) -%}):
{%- call py::setup_args(func) %}
{% call py::to_ffi_call(func) %}
{% endmatch %}
{%- endif %}
|