rust-bindgen
rust-bindgen copied to clipboard
Automatically generates Rust FFI bindings to C (and some C++) libraries.
As standard, bindgen treats C++ pointers and references the same in its output. Downstream postprocessors might want to treat these things differently; for example to use a CppRef type for...
`\u{1}` is an LLVM specific extension which other rustc codegen backends do not support. Fixes https://github.com/rust-lang/rust-bindgen/issues/2935
Report mods in callbacks, and item parentage. This makes two complementary improvements to the `ParseCallbacks`. The first is that `Mod`s are now announced, as a new type of `DiscoveredItem`. The...
Builds on top of #3140. This provides the source code location of an item in the existing item discovery callback. See f607994c3ab87ee754ce7a9138564c2a22b6bb92 for discussion of whether it's OK to break...
The below outputs are with bindgen 0.71.1 (no flags) on `x86_64-pc-windows-msvc`. Consider the union below. There are two issues: - The accessors for `bitfld_b` and `bitfld_c` use bit offsets of...
Hello :) At the moment, Bindgen does not document in its readme that in BINDGEN_EXTRA_CLANG_ARGS_ is either the target value or the target with hyphens replaced by underscores. This is...
Hello `bindgen` team! I am having some issues with bindings generated from Windows USB headers defined in `ucxusbdevice.h`. Here is a link to a minimal repro I've been able to...
### Context Some C code may declare doc comments in the same line as the respective member with a special syntax for the effect. ```c enum ColorSpace { RGB =...
Previously, bindgen by default used the same directory of the headers as the directory for temporary files of the `clang_macro_fallback` feature. Aside from its other problems like making temporary noises...
`bindgen` crate doesn't clearly states Clang version is too old. Build fails with ` not found` error. See [iai-callgrind issue](https://github.com/iai-callgrind/iai-callgrind/issues/344). Steps to reproduce: 1. On Ubuntu 18.04 install `libclang-6.0-dev`, remove...