2020-10-07 12:51:20 +02:00
## 0.15.0
* Allow customizing mangling of generic parameters in C (#575)
* Box<T> simplifies to T* in C (4ce324c)
* ManuallyDrop<T> and MaubeUninit<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)
2020-09-21 20:46:44 +02:00
## 0.14.6
* Fixed the builds with older versions of rustc.
2020-09-19 16:24:19 +02:00
## 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.
2020-08-20 18:38:27 +02:00
## 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)
2020-06-24 17:18:53 +02:00
## 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)
2020-05-01 00:48:26 +02:00
## 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)
2020-04-10 16:34:54 +02:00
## 0.14.1
* Handle mangling pointers. (#508)
* Unconditionally generate a return statement in partialeq implementations. (#509)
2020-04-04 23:27:49 +02:00
## 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)
2020-03-21 03:31:26 +01:00
## 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)
2020-02-09 15:47:24 +01:00
## 0.13.1
* Support `#[cfg]` on individual enum variants. (#469)
2020-01-31 01:52:18 +01:00
## 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)
2020-01-10 14:07:52 +01:00
## 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
2019-12-30 00:52:53 +01:00
## 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
2019-12-16 13:29:53 +01:00
## 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
2019-12-08 22:15:34 +01:00
## 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
2019-12-04 00:05:11 +01:00
## 0.11.0
* Made rust char map to uint32_t. https://github.com/eqrion/cbindgen/pull/424
2019-12-03 00:49:05 +01:00
## 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
2019-11-19 17:08:56 +01:00
## 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
2019-08-25 19:41:15 +02:00
## 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
2019-06-26 16:02:39 +02:00
## 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
2019-06-12 11:44:44 -05:00
## 0.8.7
2019-06-26 16:02:39 +02:00
2019-06-12 11:44:44 -05:00
* 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
2019-06-26 16:02:39 +02:00
2019-06-12 11:44:44 -05:00
* Fixed a panic when missing a lock file
## 0.8.5
2019-06-26 16:02:39 +02:00
2019-06-12 11:44:44 -05:00
* Improved support for Rust 2018 modules
* Add possibility to autogenerate tagged union destructors
## 0.8.4
2019-06-26 16:02:39 +02:00
2019-06-12 11:44:44 -05:00
* 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
2019-06-26 16:02:39 +02:00
2019-06-12 11:44:44 -05:00
* Improvements to bitflags parsing
## 0.8.1
2019-06-26 16:02:39 +02:00
2019-06-12 11:44:44 -05:00
* Support for manual parsing and expanding of bitflags macros
* Support for optional tagged enum casts with asserts
## 0.8.0
2019-06-26 16:02:39 +02:00
2019-06-12 11:44:44 -05:00
* support for 'includes' without default includes
* removed dependency on ancient serde_derive!
## 0.7.1
2019-06-26 16:02:39 +02:00
2019-06-12 11:44:44 -05:00
* Fix for crash when unwrapping unsupported type with associated constants
## 0.7.0
2019-06-26 16:02:39 +02:00
2019-06-12 11:44:44 -05:00
* 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
2019-06-26 16:02:39 +02:00
2019-06-12 11:44:44 -05:00
* 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