Macro interoptopus::pattern_api_entry[][src]

macro_rules! pattern_api_entry {
    (
        $struct:ident,
        $init:ident,
        [
            $($function:ident),*
        ]
    ) => { ... };
}
Expand description

Defines a new API entry function and corresponding struct.

The resulting function can be called via FFI and will return a struct, pointing to all exported functions.

Example

In this example, other languages can call my_api_init_v1 to obtain a struct of type MyAPIv1 exporting f1 and f2.

use interoptopus::{pattern_api_entry, ffi_function};

#[ffi_function]
extern "C" fn f1() {}

#[ffi_function]
extern "C" fn f2() {}

pattern_api_entry!(MyAPIv1, my_api_init_v1, [f1, f2]);