alef 0.75.0

Opinionated polyglot binding generator for Rust libraries
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/// Convert an integer to a `{{ enum_name }}` variant. Returns -1 on invalid input.
/// # Safety
/// Caller must ensure all pointer arguments are valid or null.
/// Returned pointers must be freed with the appropriate free function.
#[unsafe(no_mangle)]
pub unsafe extern "C" fn {{ prefix }}_{{ enum_snake }}_from_i32(value: i32) -> i32 {
    catch_ffi_panic(-1, || {
    match value {
{% for variant in variants %}        {{ variant.index }} => {{ variant.index }}, // {{ variant.name }}
{% endfor %}        _ => {
            set_last_error(1, "Invalid {{ enum_name }} variant");
            -1
        }
    }
    })
}