diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ee813c..7ba6db3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,56 +1,75 @@ Recent Changes (arrayvec) -------------------------- +========================= -- 0.5.2 +## 0.6.0 - - Add `is_empty` methods for ArrayVec and ArrayString by @nicbn - - Implement `TryFrom` for ArrayVec by @paulkernfeld - - Add `unstable-const-fn` to make `new` methods const by @m-ou-se - - Run miri in CI and a few related fixes by @RalfJung - - Fix outdated comment by @Phlosioneer - - Move changelog to a separate file by @Luro02 - - Remove deprecated `Error::description` by @AnderEnder - - Use pointer method `add` by @hbina +- The **const generics** release 🎉. Arrayvec finally implements what it + wanted to implement all along, since its first version; a vector backed by + and array, with generic parameters for the arbitrary element type + and backing array capacity. -- 0.5.1 + New type syntax is `ArrayVec` where CAP is the arrayvec capacity. + For arraystring the syntax is `ArrayString`. + By @bluss. - - Add `as_ptr`, `as_mut_ptr` accessors directly on the `ArrayVec` by @tbu- - (matches the same addition to `Vec` which happened in Rust 1.37). - - Add method `ArrayString::len` (now available directly, not just through deref to str). - - Use raw pointers instead of `&mut [u8]` for encoding chars into `ArrayString` - (uninit best practice fix). - - Use raw pointers instead of `get_unchecked_mut` where the target may be - uninitialized everywhere relevant in the ArrayVec implementation - (uninit best practice fix). - - Changed inline hints on many methods, mainly removing inline hints - - `ArrayVec::dispose` is now deprecated (it has no purpose anymore) +- Arrayvec's `.extend()` and `FromIterator`/`.collect()` to arrayvec now + **panic** if the capacity of the arrayvec is exceeded. By @bluss. -- 0.4.12 +- Arraystring now implements `TryFrom<&str>` and `TryFrom` by + @c410-f3r - - Use raw pointers instead of `get_unchecked_mut` where the target may be - uninitialized everywhere relevant in the ArrayVec implementation. +- Minimum supported rust version is Rust 1.51 -- 0.5.0 +## 0.5.2 - - Use `MaybeUninit` (now unconditionally) in the implementation of - `ArrayVec` - - Use `MaybeUninit` (now unconditionally) in the implementation of - `ArrayString` - - The crate feature for serde serialization is now named `serde`. - - Updated the `Array` trait interface, and it is now easier to use for - users outside the crate. - - Add `FromStr` impl for `ArrayString` by @despawnerer - - Add method `try_extend_from_slice` to `ArrayVec`, which is always - effecient by @Thomasdezeeuw. - - Add method `remaining_capacity` by @Thomasdezeeuw - - Improve performance of the `extend` method. - - The index type of zero capacity vectors is now itself zero size, by - @clarfon - - Use `drop_in_place` for truncate and clear methods. This affects drop order - and resume from panic during drop. - - Use Rust 2018 edition for the implementation - - Require Rust 1.36 or later, for the unconditional `MaybeUninit` - improvements. +- Add `is_empty` methods for ArrayVec and ArrayString by @nicbn +- Implement `TryFrom` for ArrayVec by @paulkernfeld +- Add `unstable-const-fn` to make `new` methods const by @m-ou-se +- Run miri in CI and a few related fixes by @RalfJung +- Fix outdated comment by @Phlosioneer +- Move changelog to a separate file by @Luro02 +- Remove deprecated `Error::description` by @AnderEnder +- Use pointer method `add` by @hbina + +## 0.5.1 + +- Add `as_ptr`, `as_mut_ptr` accessors directly on the `ArrayVec` by @tbu- + (matches the same addition to `Vec` which happened in Rust 1.37). +- Add method `ArrayString::len` (now available directly, not just through deref to str). +- Use raw pointers instead of `&mut [u8]` for encoding chars into `ArrayString` + (uninit best practice fix). +- Use raw pointers instead of `get_unchecked_mut` where the target may be + uninitialized everywhere relevant in the ArrayVec implementation + (uninit best practice fix). +- Changed inline hints on many methods, mainly removing inline hints +- `ArrayVec::dispose` is now deprecated (it has no purpose anymore) + +## 0.4.12 + +- Use raw pointers instead of `get_unchecked_mut` where the target may be + uninitialized everywhere relevant in the ArrayVec implementation. + +## 0.5.0 + +- Use `MaybeUninit` (now unconditionally) in the implementation of + `ArrayVec` +- Use `MaybeUninit` (now unconditionally) in the implementation of + `ArrayString` +- The crate feature for serde serialization is now named `serde`. +- Updated the `Array` trait interface, and it is now easier to use for + users outside the crate. +- Add `FromStr` impl for `ArrayString` by @despawnerer +- Add method `try_extend_from_slice` to `ArrayVec`, which is always + effecient by @Thomasdezeeuw. +- Add method `remaining_capacity` by @Thomasdezeeuw +- Improve performance of the `extend` method. +- The index type of zero capacity vectors is now itself zero size, by + @clarfon +- Use `drop_in_place` for truncate and clear methods. This affects drop order + and resume from panic during drop. +- Use Rust 2018 edition for the implementation +- Require Rust 1.36 or later, for the unconditional `MaybeUninit` + improvements. - 0.4.11