commit | f4f47d52cbce45af177958e76ef9a4a17e922bc4 | [log] [tgz] |
---|---|---|
author | Emilio Cobos Álvarez <emilio@crisal.io> | Sat Feb 23 06:59:43 2019 +0100 |
committer | GitHub <noreply@github.com> | Sat Feb 23 06:59:43 2019 +0100 |
tree | 4cbdf487f5af7913478cae56aa678e73c468fd73 | |
parent | 9fb016e32bfc2cd917c907e8b9e892eed89b24c7 [diff] | |
parent | 592c7cb5eb1a2578464bf6d4892546f7e0bf4b4b [diff] |
Merge pull request #1525 from emilio/llvm-bug-workaround Work-around https://bugs.llvm.org/show_bug.cgi?id=40813.
bindgen
bindgen
automatically generates Rust FFI bindings to C (and some C++) libraries.
For example, given the C header doggo.h
:
typedef struct Doggo { int many; char wow; } Doggo; void eleven_out_of_ten_majestic_af(Doggo* pupper);
bindgen
produces Rust FFI code allowing you to call into the doggo
library's functions and use its types:
/* automatically generated by rust-bindgen */ #[repr(C)] pub struct Doggo { pub many: ::std::os::raw::c_int, pub wow: ::std::os::raw::c_char, } extern "C" { pub fn eleven_out_of_ten_majestic_af(pupper: *mut Doggo); }
📚 Read the bindgen
users guide here! 📚
API reference documentation is on docs.rs