dlib

Macro external_library

source
macro_rules! external_library {
    (feature=$feature: expr, $structname: ident, $link: expr,
        $(statics: $($sname: ident: $stype: ty),+,)|*
        $(functions: $(fn $fname: ident($($farg: ty),*) -> $fret:ty),+,)|*
        $(varargs: $(fn $vname: ident($($vargs: ty),+) -> $vret: ty),+,)|*
    ) => { ... };
    ($structname: ident, $link: expr,
        $(statics: $($sname: ident: $stype: ty),+,)|*
        $(functions: $(fn $fname: ident($($farg: ty),*) -> $fret:ty),+,)|*
        $(varargs: $(fn $vname: ident($($vargs: ty),+) -> $vret: ty),+,)|*
    ) => { ... };
}
Expand description

Main macro of this library, used to generate the the FFI bindings.

The expected arguments are, in order:

  • (Optional) The name of the cargo feature conditioning the usage of dlopen, in the form feature="feature-name". If ommited, the feature "dlopen" will be used.
  • The name of the struct that will be generated when the dlopen-controlling feature is enabled
  • The link name of the target library
  • The desctription of the statics, functions, and vararg functions that should be linked

See crate-level documentation for a detailed example of use.