[][src]Crate wrapgen

wrapgen is a tool to automatically generate Rust wrappers around C functions called via FFI. It will wrap pointer returns in an Option and int returns in a Result. As of now, wrapgen only works if your functions adhere to the C convention of returning 0 on a successful run and another value otherwise.

How to use wrapgen

You can use wrapgen as a standalone binary:

wrapgen input.rs output.rs

where input.rs contains one function declaration per line

or include it in your build.rs file:

fn main() {
   WrapGen::new("input1.rs")
       .add_file("input2.rs")
       .function("fn my_test_fn(arg1: cty::c_int) -> cty::c_int")
       .prefix("rs_")
       .use_core(false)
       .generate("output.rs");
}

Structs

WrapGen

The builder struct to create wrappers. Create an instance, add the files, types and functions you want to wrap and finally call generate() to create the wrappers.

WrapperType

The representation of a pointer type to wrap. If you wrap a pointer type *mut T, it will be represtented as Wrapper<T> where Wrapper is defined as the following zero-cost abstraction: