in uniffi_bindgen/src/bindings/python/templates/EnumTemplate.py [0:0]
def read(buf):
variant = buf.read_i32()
{%- for variant in e.variants() %}
if variant == {{ loop.index }}:
{%- if e.is_flat() %}
return {{ type_name }}.{{variant.name()}}
{%- else %}
return {{ type_name }}.{{variant.name()}}(
{%- for field in variant.fields() %}
{{ field|read_fn }}(buf),
{%- endfor %}
)
{%- endif %}
{%- endfor %}
raise InternalError("Raw enum value doesn't match any cases")