Please check build logs and if you believe this is docs.rs' fault, report into this issue report.
libffi-rs: Rust bindings for libffi
The C libffi library provides two main facilities: assembling calls
to functions dynamically, and creating closures that can be called
as ordinary C functions. In Rust, the latter means that we can turn
a Rust lambda (or any object implementing
FnMut) into an
ordinary C function pointer that we can pass as a callback to C.
The easiest way to use this library is via the
high layer module, but
more flexibility (and less checking) is provided by the
It’s on crates.io, so it can be
used by adding
libffi to the dependencies in your project’s
[dependencies] libffi = "0.2"
It is necessary to have C libffi installed first. (We’ve tested with libffi version 3.2.1.)
In this example, we convert a Rust lambda containing a free variable
into an ordinary C code pointer. The type of
fun below is
extern "C" fn(u64, u64) -> u64.
use libffi::high::Closure2; let x = 5u64; let f = |y: u64, z: u64| x + y + z; let closure = Closure2::new(&f); let fun = closure.code_ptr(); assert_eq!(18, fun(6, 7));