Module emf_core_base_rs_ffi::library [−][src]
Library api.
Example
use emf_core_base_rs_ffi::sys::api::SysBinding; use emf_core_base_rs_ffi::library::api::LibraryBinding; use emf_core_base_rs_ffi::collections::NonNullConst; use emf_core_base_rs_ffi::library::{OSPathChar, DEFAULT_HANDLE, LibraryHandle, Error}; unsafe { // `base_interface` has the type `&mut dyn CBaseBinding`. SysBinding::lock(base_interface); // Path of the library. Platform dependent initialisation. let lib_path: &OSPathChar = unsafe { std::mem::MaybeUninit::uninit().assume_init() }; let handle = match LibraryBinding::load( base_interface, DEFAULT_HANDLE, NonNullConst::from(lib_path) ).to_result() { Ok(handle) => handle, Err(_) => { SysBinding::panic( base_interface, Some(NonNullConst::from(b"Unable to load the library.\0")) ); } }; let symbol: unsafe extern "C" fn(i32, i32) -> i32 = match LibraryBinding::get_function_symbol( base_interface, handle, NonNullConst::from(b"add_fn\0") ).to_result() { Ok(sym) => { std::mem::transmute(sym.symbol) }, Err(_) => { SysBinding::panic(base_interface, Some(NonNullConst::from(b"Unable to find the symbol.\0")) ); } }; assert_eq!(symbol(3, 5), 8); match LibraryBinding::unload(base_interface, handle).to_result() { Ok(_) => {} Err(_) => { SysBinding::panic(base_interface, Some(NonNullConst::from(b"Unable to unload the library.\0")) ); } } SysBinding::unlock(base_interface); }
Modules
api | Library api. |
library_loader | Interface of a library loader. |
Structs
InternalHandle | Internal handle to a library. |
LibraryHandle | Handle to a library. |
LoaderHandle | Handle to a loader. |
Symbol | A symbol from a library. |
Enums
Error | Library api errors. |
PredefinedHandles | Predefined loader handles. |
Constants
DEFAULT_HANDLE | Handle of the native library loader. |
LOADER_TYPE_MAX_LENGTH | Max length of a library type. |
NATIVE_LIBRARY_TYPE_NAME | Name of the native library type. |
Type Definitions
LibraryType | Library type. |
OSPathChar | Character type of a path. |
OSPathCharUnix | Character type of a unix path. |
OSPathCharWindows | Character type of a windows path. |