Rust bindgen helpers
Utilities to rename, change case, and fix Rust code generated from the C headers using bindgen.
Renamer
implements a bindgen callback trait, and currently handles struct/enum/typedef type renames with a string->string
hashmap.
Additionally, it can rename the enum variant names by removing regex matches, and change identifier case to PascalCase
to be consistent with the Rust canonical style.
Usage
// build.rs
use Builder;
use ;
//
// This is the approximate code that would be generated by the above:
//
See the list of all case variants supported by the convert_case
crate.
Development
- This project is easier to develop with just, a modern alternative to
make
. Install it withcargo install just
. - To get a list of available commands, run
just
. - To run tests, use
just test
. - On
git push
, it will run a few validations, includingcargo fmt
,cargo clippy
, andcargo test
. Usegit push --no-verify
to skip these checks.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.