alef 0.25.39

Opinionated polyglot binding generator for Rust libraries
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    // Trait Bridge FFI
{% for bridge in bridges %}

    [DllImport(LibName, CallingConvention = CallingConvention.Cdecl, EntryPoint = "{{ bridge.register_fn }}")]
    internal static extern int Register{{ bridge.trait_name }}([MarshalAs(UnmanagedType.LPUTF8Str)] string name, IntPtr vtable, IntPtr userData, out IntPtr outError);

{% if bridge.has_unregister %}
    [DllImport(LibName, CallingConvention = CallingConvention.Cdecl, EntryPoint = "{{ bridge.unregister_fn }}")]
    internal static extern int Unregister{{ bridge.trait_name }}([MarshalAs(UnmanagedType.LPUTF8Str)] string name, out IntPtr outError);
{% endif %}

{% if bridge.has_clear %}
    [DllImport(LibName, CallingConvention = CallingConvention.Cdecl, EntryPoint = "{{ bridge.clear_fn }}")]
    internal static extern int Clear{{ bridge.trait_name }}(out IntPtr outError);
{% endif %}

{% endfor %}