Macro dlib::external_library[][src]

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 conditionning 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.