Attribute Macro interoptopus::ffi_function[][src]

#[ffi_function]
This is supported on crate feature derive only.
Expand description

Enable an extern "C" function to appear in generated bindings.

This will derive FunctionInfo for a helper struct of the same name containing the function’s name, parameters and return value.

The following attributes can be provided:

AttributeExplanation
surrogates(x="y")Invoke function y to provide a CTypeInfo for parameter x, see below.
debugPrint generated helper code in console.

Surrogates

When dealing with types outside of your control you will not be able to implement CTypeInfo for them. Instead you need a surrogate, a helper function which returns that info for the type.

The surrogate’s signature is:

fn some_foreign_type() -> CType {
    // Return an appropriate CType
}

Example

use interoptopus::ffi_function;

#[ffi_function]
#[no_mangle]
pub extern "C" fn my_function(x: u32) -> u32 {
    x
}