[][src]Crate ffi_utils

FFI utilities.

Re-exports

pub use self::result::FfiResult;
pub use self::result::NativeResult;
pub use self::result::FFI_RESULT_OK;
pub use self::string::StringError;

Modules

bindgen_utils

Utilities for binding generators.

callback

Helpers to work with extern "C" callbacks.

result

Utilities for handling results and errors across the FFI boundary.

string

Utilities for passing strings across FFI boundaries.

test_utils

Test utilities.

Macros

call_result_cb

Convert a result into an FfiResult and call a callback.

ffi_error

Convert an error into a pair of (error_code: i32, description: String) to be used in NativeResult.

ffi_error_code

Convert an error into an i32 error code.

ffi_result

Convert a result into a pair of (error_code: i32, description: String) to be used in NativeResult.

ffi_result_code

Convert a result into an i32 error code.

try_cb

Given a result, calls the callback if it is an error, otherwise produces the wrapped value. Should be called within catch_unwind, so returns None on error.

Structs

OpaqueCtx

Type that holds opaque user data handed into FFI functions.

Traits

ErrorCode

Trait for types that can be converted to integer error code.

ReprC

Trait to convert between FFI and Rust representations of types.

SafePtr

Provides FFI-safe pointers, as opposed to raw as_ptr() in Vec and String which can return values such as 0x01 that can cause segmentation faults with the automatic pointer dereferencing on the front-end side (e.g. in Node.js).

Functions

base64_decode

Decode base64 encoded data.

base64_encode

Encode the data using base64 encoding.

catch_unwind_cb

Catch panics. On error call the callback.

catch_unwind_result

Catches panics and returns the result.

vec_clone_from_raw_parts

Converts a pointer and length to Vec by cloning the contents. Note: This does NOT free the memory pointed to by ptr.

vec_from_raw_parts

Retakes ownership of a Vec that was transferred to C via vec_into_raw_parts.

vec_into_raw_parts

Consumes a Vec and transfers ownership of the data to a C caller, returning (pointer, size).