| ## 0.24.5 |
| |
| * Don't enforce tempfile version. |
| |
| ## 0.24.4 |
| |
| * Move expand infinite recursion fix (#799) |
| * Add with_cpp_compat to the builder (#796) |
| * Handle never type in return position consistently (#780) |
| * Fix warnings (#816, #819) |
| * Updated documentation (#788, #791, #792, #810, #823) |
| |
| ## 0.24.3 |
| |
| * Make struct expressions correctly generated through typedefs (#768). |
| |
| ## 0.24.2 |
| |
| * Make bitfield operators use explicit constructors. |
| |
| ## 0.24.1 |
| |
| * Add support for unary negation (#765). |
| * Make more bitfield operators constexpr (#765). |
| |
| ## 0.24.0 |
| |
| * Basic const generic support (#759, #760 #762). |
| * Suffixes on integer literals are now honored to avoid narrowing (#764). |
| |
| ## 0.23.0 |
| |
| * Better support for constexpr. (#756) |
| * constexpr is now enabled by default in C++ mode. You can use const.allow_constexpr=false to revert to previous behavior. (#756) |
| * Minimum syn version no longer parses old rust code. (#754) |
| |
| ## 0.22.0 |
| |
| * Support rename rule for union body members (#751). |
| * constant: Add support for associated constant expressions (#752). |
| * Fix regression in CamelCase rename rule (should be lowerCamelCase) (#750). |
| * enumeration: simplify standard types in variants (#749). |
| * Avoid generating and writing bindings when called recursively (#747). |
| * Cython: Omit per-variant tags in unions generated for Rust enums (#748). |
| * Update various dependencies. |
| |
| ## 0.21.0 |
| |
| * Update MSRV to 1.54.0 |
| * Update clap to 3.1. |
| * Update heck to 0.4.0 |
| * unraw identifiers |
| * Honor documentation_length in Cython. |
| * Add documentation_style to with short and full options |
| * Map RawFd to Int |
| * Respect remove_underscores config when prefixing name to enum |
| |
| ## 0.20.0 |
| |
| * Add Builder::with_using_namespaces. (#688) |
| * Ignore PhantomPinned. (#695) |
| * Simplify Pin<T> to T. (#697) |
| * Update --pretty=expanded to -Zunpretty=expanded. (#706) |
| |
| ## 0.19.0 |
| |
| * Simplify types in generics (#663) |
| * Use --profile=check for macro expansion (#671) |
| * Use exported name to prefix enum variants (#672) |
| * Fix path attribute handling in inline submodules (#679) |
| * Fix a stack overflow with some recursive typedefs (#680) |
| |
| ## 0.18.0 |
| |
| * Simplify types in nested types such as pointed-to types and function signatures (#661) |
| |
| ## 0.17.0 |
| |
| * Add with_parse_extra_bindings to builder. (#645) |
| * Support NonZero and fix incorrect simplification of Option<ptr> into ptr. (#647) |
| * Deal with name conflicts correctly in declaration type resolution. (#651) |
| * Support pointers to ZSTs. (#656) |
| |
| ## 0.16.0 |
| |
| * Remove artificial restriction on lifetime parameters on enums (#604) |
| * Add an option for converting usize/isize into size_t/ptrdiff_t. (#606) |
| * Allow controlling the cargo profile used for expansion. (#607) |
| * Support wider range of expressions in enum discriminants (#614) |
| * Support generation of Cython bindings (#590) |
| * Fixed some issues with style=tag and recursive structs (#615) |
| * Default C style to Both (as specified in docs) (#615) |
| * Fix resolution of path dependencies from certain modules. (#629) |
| * Support inlined definitions for tuple variants with a single field in C (#631) |
| |
| Thanks to all the awesome contributors that contributed to this release. |
| |
| ## 0.15.0 |
| |
| * Allow customizing mangling of generic parameters in C (#575) |
| * Box<T> simplifies to T* in C (4ce324c) |
| * ManuallyDrop<T> and MaybeUninit<T> simplify to T in C, and are opaque in C++ (0076a17) |
| * C++ supports a derive-ostream annotation to derive serialization of structs, unions and enums (#582) |
| * Large character constants have been fixed on Windows (#586) |
| * Constants are now generated for typedefs, etc (#589) |
| * The `sort_by` configuration option has been made to work for constants (#587) |
| * Default sort order is source order now (sort_by = "None"), and can be changed by the above option (#587) |
| |
| ## 0.14.6 |
| |
| * Fixed the builds with older versions of rustc. |
| |
| ## 0.14.5 |
| |
| * Add support to specify line ending style (#568) |
| * Add cbindgen:ptrs-as-arrays annotation to allow making function |
| arguments C/C++ arrays. |
| |
| ## 0.14.4 |
| |
| * Allow to override the mangling separator (#502) |
| |
| * cbindgen now handles better having ZSTs in template parameters, and |
| default template parameters (#563). |
| |
| * Support for annotating nonnull pointers (#558) |
| |
| * Fixed bitflags that overflow a signed integer (#556) |
| |
| * Support for wildcard argument names (#550) |
| |
| * Support for the never return type, with configurable annotation (#549) |
| |
| * Properly reject arrays as function arguments (#540) |
| |
| ## 0.14.3 |
| |
| * Introduce cbindgen:ignore comment annotation, to allow ignoring items or modules. (#519) |
| * Support for casts in constant expressions. (#526) |
| * Make a non-fatal error a warning message. (#535) |
| * Add a --metadata option to the CLI, to allow passing pre-computed cargo metadata. (#538) |
| |
| ## 0.14.2 |
| |
| * Fixed minimal dependency versions. (#507) |
| * Add an option to write pragma once. (#511) |
| * Fix submodule scanning for implicit Rust 2018 modules. (#512) |
| * Fix dependency parsing / scanning to handle target-specific versions. (#513) |
| * Use heck for case conversion. (#514) |
| * Add support for verbatim content after includes. (#416) |
| * Allow to add attributes to most generated functions. (#515) |
| |
| ## 0.14.1 |
| |
| * Handle mangling pointers. (#508) |
| * Unconditionally generate a return statement in partialeq implementations. (#509) |
| |
| ## 0.14.0 |
| |
| * Minor tweak at how [export.exclude] is handled to allow excluding |
| generic instantiations in C mode. (#501) |
| * Documented cpp_compat option. (#496) |
| * Fixed a panic when parsing associated constants for a built-in type. (#494) |
| |
| ## 0.13.2 |
| |
| * Constants now have suitable documentation. (#471) |
| * Fixed some C warnings by emitting void when there are no arguments. (#470) |
| * Avoids reading cargo.toml when not needed, which can cause panics in workspace situations. |
| * Only write `default` cases if the switch is not exhaustive. (#475) |
| * Some warnings have been refined. (#477) |
| * Code generation for static arrays has been fixed. (#479) |
| * Opt-in support for constexpr in constants. (#481) |
| * Fix C code generation and some warnings when extremely large constants are used. (#490) |
| * Proper escaping of enum variants and fields. (#483) |
| * Added support for RefCell (as an opaque type) and Cell. (#489) |
| |
| ## 0.13.1 |
| |
| * Support `#[cfg]` on individual enum variants. (#469) |
| |
| ## 0.13.0 |
| |
| * Support 'swift_name' attributes on generated functions (#449) |
| * Add [export.pre_body] to config (#452) |
| * Handle new line in doc attribute (#454) |
| * Add support for `Self` in tagged enums, structs and unions (#455, #455, #456) |
| * Make sentinel variant respect regular config (#459) |
| * Fix layout of tagged enums with size under some configurations (#463) |
| * Add an option to allow configuring the order of function names in generated headers (#466) |
| |
| ## 0.12.2 |
| |
| * Fixed version detection with lockfile v2. https://github.com/eqrion/cbindgen/pull/446 |
| * Added support for export_name on functions. https://github.com/eqrion/cbindgen/pull/447 |
| |
| ## 0.12.1 |
| |
| * Added support for #[repr*64)] on enums. https://github.com/eqrion/cbindgen/pull/441 |
| * Added support to generate plain enums instead of enum classes for C++. https://github.com/eqrion/cbindgen/pull/443 |
| * Fixed dependency resolution with lockfile v2. https://github.com/eqrion/cbindgen/pull/438 |
| |
| ## 0.12.0 |
| |
| * Added support for #[repr(align)] and #[repr(packed)] on structs and unions. https://github.com/eqrion/cbindgen/pull/431 |
| * Added support to generate copy-assignment operators for enums. https://github.com/eqrion/cbindgen/pull/434 |
| |
| ## 0.11.1 |
| |
| * More binary operators and expressions are supported. https://github.com/eqrion/cbindgen/pull/425 |
| * More built-in bitflags operators. https://github.com/eqrion/cbindgen/pull/426 |
| |
| ## 0.11.0 |
| |
| * Made rust char map to uint32_t. https://github.com/eqrion/cbindgen/pull/424 |
| |
| ## 0.10.1 |
| |
| * Improved error message for missing config file. https://github.com/eqrion/cbindgen/pull/422 |
| * Add missing header for char32_t. https://github.com/eqrion/cbindgen/pull/414 |
| |
| ## 0.10.0 |
| |
| * Initialize struct literal with list-initializer for C++11 standard. https://github.com/eqrion/cbindgen/pull/401 |
| * Surround namespace with __cplusplus ifdef in cpp_compat mode. https://github.com/eqrion/cbindgen/pull/407 |
| * Add support for --quiet flag. https://github.com/eqrion/cbindgen/pull/400 |
| * Map char to char32_t. https://github.com/eqrion/cbindgen/pull/396 |
| * Improve binding_crate_ref() error message. https://github.com/eqrion/cbindgen/pull/395 |
| * avoid prematurely returning during expansion. https://github.com/eqrion/cbindgen/pull/389 |
| * Add support for adding "using namespace" statements. https://github.com/eqrion/cbindgen/pull/387 |
| |
| ## 0.9.1 |
| |
| * Various improvements to comment output. https://github.com/eqrion/cbindgen/pull/370 / https://github.com/eqrion/cbindgen/pull/375. |
| * Fixed expand when ran from build.rs. https://github.com/eqrion/cbindgen/pull/371 |
| * More debugging output for expansion. https://github.com/eqrion/cbindgen/pull/383 |
| * New option to add a default private constructor in C++ tagged enums. https://github.com/eqrion/cbindgen/pull/377 |
| * Syn and related dependencies updated to 1.0. https://github.com/eqrion/cbindgen/pull/379 |
| |
| ## 0.9.0 |
| |
| * Support to generate C headers with C++ compatibility. https://github.com/eqrion/cbindgen/pull/349 |
| * Fix include guard generation when no_includes is set. https://github.com/eqrion/cbindgen/pull/352 |
| * Fix crate parsing order so that types from the binding crate are preferred in presence of conflicting names. https://github.com/eqrion/cbindgen/pull/355 |
| * Add extra_bindings option to generate bindings for dependencies. https://github.com/eqrion/cbindgen/pull/362 |
| * Clap dependency is optional now so it's feasible to avoid building it if cbindgen is used as a library. https://github.com/eqrion/cbindgen/pull/363 |
| |
| ## 0.8.7 |
| |
| * Require C++11 to run the test-suite (#341, test-only) |
| * Improve mangling error message (#340) |
| * Add the ability to automatically derive copy-constructors for tagged enums (#339) |
| * Use placement new for constructing in tagged unions' helper methods (#333) |
| |
| ## 0.8.6 |
| |
| * Fixed a panic when missing a lock file |
| |
| ## 0.8.5 |
| |
| * Improved support for Rust 2018 modules |
| * Add possibility to autogenerate tagged union destructors |
| |
| ## 0.8.4 |
| |
| * Support for package renaming in Cargo.toml |
| * Improved error messages for |cargo metadata| failures |
| * Replaced 'test.py' harness with |cargo test| |
| * Char constants will now be escaped properly |
| * Visibility of constants will now be respected |
| * Added a C99 doc comment style |
| |
| ## 0.8.2 |
| |
| * Improvements to bitflags parsing |
| |
| ## 0.8.1 |
| |
| * Support for manual parsing and expanding of bitflags macros |
| * Support for optional tagged enum casts with asserts |
| |
| ## 0.8.0 |
| |
| * support for 'includes' without default includes |
| * removed dependency on ancient serde_derive! |
| |
| ## 0.7.1 |
| |
| * Fix for crash when unwrapping unsupported type with associated constants |
| |
| ## 0.7.0 |
| |
| * support for libc::ssize_t |
| * fixed some warnings on nightly |
| * fix for transparent associated constants |
| * switched more API's to use AsRef<Path> |
| * impl std::error::Error for cbindgen::Error |
| * now support putting user-defined content in item bodies |
| |
| ## 0.6.8 |
| |
| * ptrdiff_t is now a recognized primitive type |
| * named function type arguments are now propagated |
| * fixes for struct literals in constants |
| * reserved C/C++ keywords are now escaped automatically |
| * negative enum discriminants are now supported |
| * fix for prefixing and formatting variant names |
| * fix for snake_case formatter |
| * syn update |
| * doxygen style comments are now output by default |
| * VaList is now a recognized primitive type |
| * fix for comment processing |
| * constant is propagated into array types |
| * references are now supported in IR, and used for some helper method generation |
| * assignment helper functions will generate array copies if necessary |