blob: f75a85dc2756564c4d821cb239f815bbc7efff24 (
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
{%- match python_config.custom_types.get(name.as_str()) %}
{% when None %}
{#- No custom type config, just forward all methods to our builtin type #}
# Type alias
{{ name }} = {{ builtin|type_name }}
class _UniffiConverterType{{ name }}:
@staticmethod
def write(value, buf):
{{ builtin|ffi_converter_name }}.write(value, buf)
@staticmethod
def read(buf):
return {{ builtin|ffi_converter_name }}.read(buf)
@staticmethod
def lift(value):
return {{ builtin|ffi_converter_name }}.lift(value)
@staticmethod
def check_lower(value):
return {{ builtin|ffi_converter_name }}.check_lower(value)
@staticmethod
def lower(value):
return {{ builtin|ffi_converter_name }}.lower(value)
{%- when Some(config) %}
{%- match config.imports %}
{%- when Some(imports) %}
{%- for import_name in imports %}
{{ self.add_import(import_name) }}
{%- endfor %}
{%- else %}
{%- endmatch %}
# Type alias
{{ name }} = {{ builtin|type_name }}
{#- Custom type config supplied, use it to convert the builtin type #}
class _UniffiConverterType{{ name }}:
@staticmethod
def write(value, buf):
builtin_value = {{ config.from_custom.render("value") }}
{{ builtin|write_fn }}(builtin_value, buf)
@staticmethod
def read(buf):
builtin_value = {{ builtin|read_fn }}(buf)
return {{ config.into_custom.render("builtin_value") }}
@staticmethod
def lift(value):
builtin_value = {{ builtin|lift_fn }}(value)
return {{ config.into_custom.render("builtin_value") }}
@staticmethod
def check_lower(value):
builtin_value = {{ config.from_custom.render("value") }}
return {{ builtin|check_lower_fn }}(builtin_value)
@staticmethod
def lower(value):
builtin_value = {{ config.from_custom.render("value") }}
return {{ builtin|lower_fn }}(builtin_value)
{%- endmatch %}
|