Crate ffi_helpers

Source
Expand description

A crate to help make working with FFI easier.

Re-exports§

pub use crate::error_handling::error_message;
pub use crate::error_handling::take_last_error;
pub use crate::error_handling::update_last_error;
pub use crate::panic::catch_panic;
pub use crate::task::Task;

Modules§

error_handling
Common error handling routines.
panic
task
Management of asynchronous tasks in an FFI context.

Macros§

catch_panic
A convenience macro for running a fallible operation (which may panic) and returning Nullable::NULL if there are any errors.
export_error_handling_functions
As a workaround for rust-lang/rfcs#2771, you can use this macro to make sure the symbols for ffi_helpers’s error handling are correctly exported in your cdylib.
export_task
Convenience macro to define the FFI bindings for working with a Task.
null_pointer_check
Check if we’ve been given a null pointer, if so we’ll return early.

Structs§

NullPointer
A null pointer was encountered where it wasn’t expected.

Traits§

Nullable
An object which has an “obviously invalid” value, for use with the null_pointer_check!() macro.
Split
A helper trait used by split_closure() to get a trampoline function which will invoke the closure.

Functions§

split_closure
Splits a closure into its data part and its code part, allowing it to be used as a callback by FFI code.