alef 0.83.1

Opinionated polyglot binding generator for Rust libraries
Documentation
fn php_zval_to_visit_result(val: &ext_php_rs::types::Zval) -> {{ result_type_path }} {
    if let Some(s) = val.string() {
        return match s.as_str() {
{%- for variant in unit_result_variants %}
    {%- if variant.cfg %}
            #[cfg({{ variant.cfg }})]
    {%- endif %}
            "{{ variant.wire_name }}" => {{ result_type_path }}::{{ variant.name }},
{%- endfor %}
            _ => {{ unknown_string_result_expr }},
        };
    }
{%- if payload_result_variants %}
    let Some(arr) = val.array() else {
        return {{ result_type_path }}::{{ default_variant }};
    };
{%- for variant in payload_result_variants %}
    {%- if variant.cfg %}
    #[cfg({{ variant.cfg }})]
    {%- endif %}
    {
    if let Some(custom_val) = arr.get("{{ variant.wire_name }}")
        && let Some(s) = custom_val.string()
    {
        return {{ result_type_path }}::{{ variant.name }}(s.to_string());
    }
    }
{%- endfor %}
{%- endif %}
    {{ result_type_path }}::{{ default_variant }}
}