Macro dlib::ffi_dispatch [−][src]
macro_rules! ffi_dispatch {
(feature = $feature : expr, $handle : ident, $func : ident, $($arg : expr), *) => { ... };
($handle : ident, $func : ident, $($arg : expr), *) => { ... };
}
Expand description
Macro for generically invoking a FFI function
The expected arguments are, in order:
- (Optional) The name of the cargo feature conditionning the usage of dlopen, in the form
feature="feature-name"
. If ommited, the feature"dlopen"
will be used. - A value of the handle generated by the macro
external_library!
when the dlopen-controlling feature is enabled - The name of the function to invoke
- The arguments to be passed to the function
The macro invocation evaluates to the return value of the FFI function.
Example
Assuming an FFI function of signature fn(u32, u32) -> u32
:
ⓘ
let sum = unsafe { ffi_dispatch!(feature="dlopen", LIBRARY_HANDLE, sum, 2, 2) };