]> git.lizzy.rs Git - enumset.git/blobdiff - RELEASES.md
Add `repr` option to derive.
[enumset.git] / RELEASES.md
index 746e66cc986cad22361c1d19567c765e307b744f..16bb1e8d601bf8a8d39375e29ace193ef5f3f4de 100644 (file)
@@ -1,13 +1,80 @@
-# Version 1.0.0 (2020-04-01) - Unreleased
+# Version 1.0.10 (2022-04-05)
+* The `proc-macro-crate` support has been locked behind the `std` flag and
+  version `1.0.9` has been yanked due to a regression that causes enumset to
+  fail to compile on `#[no_std]` platforms in programs that also use `serde`.
+* Introduced new `std` and `alloc` feature flags. These have no current use
+  beyond the previous change, but will be used in the future.
+
+# Version 1.0.9 (2022-04-04) [YANKED]
+* Disable unused default features for the `darling` crate. (Thanks @glandium)
+* Add a new `#[enumset(no_super_impls)]` feature which prevents
+  `#[derive(EnumSetType)]` from automatically generating implementations of
+  `Copy`, `Clone`, `Eq`, or `PartialEq`. (Thanks @ahcodedthat)
+* Suppressed several clippy warnings.
+* Implemented `DoubleEndedIterator` for `EnumSetIter`.
+* `#[derive(EnumSetType)]` now uses `proc-macro-crate` to find the path of the
+  `enumset` crate instead of relying on the user to manually specify it, 
+  making it easier to use when the crate has been renamed via cargo.
+* Minimum required Rust version is now 1.36+, due to updates in dependencies.
+
+# Version 1.0.8 (2021-11-04)
+* Optimized `EnumSet` iteration. (Thanks @MinusKelvin)
+
+# Version 1.0.7 (2021-07-05)
+* Added the `#[repr(transparent)]` flag to `EnumSet<T>` to allow for safe usage
+  in FFI code. Note that invalid bits being set in the bitset causes UB, so
+  this should be done with care. (Thanks @Riey)
+
+# Version 1.0.6 (2021-02-27)
+* Fix an unneeded warning in the output for `enum_set!` for a single value.
+
+# Version 1.0.5 (2021-02-24)
+* Implemented `core::iter::Sum` for `EnumSet<T>`.
+* Properly acknowledge that the minimum required Rust version is actually 1.34+
+  and not 1.31+. An retroactive changelog entry has been added to 1.0.0.
+
+# Version 1.0.4 (2021-02-07)
+* Fixes a bug that caused `enumset_derive` to require an import of `EnumSet`
+  in the scope to function.
+
+# Version 1.0.3 (2021-01-27)
+* (This version contains no code changes.)
+* Redirected badges in the README to point at travis-ci.com instead of .org
+* Added `README.md`, and the license files to the crate distribution.
+
+# Version 1.0.2 (2021-01-25)
+* Fixed critical error compiling on newer versions of `syn` caused by a
+  mistaken import from a private module. (Thanks @ocboogie)
+
+# Version 1.0.1 (2020-08-09)
+* Implemented `ExactSizeIterator` for `EnumSetIter`. (Thanks @dmarcuse)
+
+# Version 1.0.0 (2020-04-06)
+
+## Breaking Changes
 * **[WARNING: Potential silent breaking change]** Changed `EnumSet::insert` to
   return whether a value was newly  inserted, rather than whether the value
   already existed in the set. This corresponds better with the behavior of
   `HashSet::insert` and `BTreeSet::insert`.
-* Renamed `to_bits`/`from_bits` to `to_u128`/`from_u128` and added additional
-  methods for other built-in numeric types. 
+* Renamed `to_bits`/`from_bits` to `as_u128`/`from_u128`.
 * `EnumSet::bit_width` and `EnumSet::variant_count` now return a `u32` instead
   of a `u8` for future-proofing.
 * Removed `nightly` feature flag, as it is no longer required.
+* Minimum required Rust version is now 1.34+.
+
+## New features
+* Added a series of functions like `as_u128`/`from_u128` for other unsigned
+  numeric types. (e.g. `as_u8`/`from_u8`, `as_u16`/`from_u16`, etc)
+* Added variants of `as_u128`/`from_u128` that return an `Option` instead of
+  panicking when the conversion cannot be done.
+* Added variants of `as_u128`/`from_u128` that truncate unknown bits instead
+  of panicking.
+* Implemented `Extend<EnumSet<T>>` and `FromIterator<EnumSet<T>>` for
+  `EnumSet<T>`. (Thanks @manuthambi)
+* Added an `#[enumset(crate_name = "renamed_enumset")]` annotation for
+  handling renamed crates.
+
+## Bugfixes
 * Fixed a bug where the procedural macro would fail on enums with a repr
   annotation set. While reprs larger than u8 are supported, negative enum
   variants or enum variants above 127 are still not currently supported.
@@ -27,7 +94,7 @@
 * Fixed a bug preventing empty enums and enums with one value from compiling.
 
 # Version 0.4.1 (2019-09-27)
-* Fixed bug in `EnumSetIter::size_hint`.
+* Fixed bug in `EnumSetIter::size_hint`. (Thanks @manuthambi)
 
 # Version 0.4.0 (2019-05-06)
 * Removed outdated macros and attributes.
 
 # Version 0.3.16 (2019-02-04)
 * Added `Default` implementation for `EnumSet<T>` that returns an empty map.
+  (Thanks @boxdot)
 
 # Version 0.3.15 (2019-01-08)
 * Added optional `serde` support.