mirror of
https://git.proxmox.com/git/rustc
synced 2026-01-15 23:23:18 +00:00
235 lines
7.2 KiB
Markdown
235 lines
7.2 KiB
Markdown
Recent Changes (arrayvec)
|
||
-------------------------
|
||
|
||
- 0.5.2
|
||
|
||
- Add `is_empty` methods for ArrayVec and ArrayString by @nicbn
|
||
- Implement `TryFrom<Slice>` 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
|
||
|
||
- In Rust 1.36 or later, use newly stable `MaybeUninit`. This extends the
|
||
soundness work introduced in 0.4.9, we are finally able to use this in
|
||
stable. We use feature detection (build script) to enable this at build
|
||
time.
|
||
|
||
- 0.4.10
|
||
|
||
- Use `repr(C)` in the `union` version that was introduced in 0.4.9, to
|
||
allay some soundness concerns.
|
||
|
||
- 0.4.9
|
||
|
||
- Use `union` in the implementation on when this is detected to be supported
|
||
(nightly only for now). This is a better solution for treating uninitialized
|
||
regions correctly, and we'll use it in stable Rust as soon as we are able.
|
||
When this is enabled, the `ArrayVec` has no space overhead in its memory
|
||
layout, although the size of the vec should not be relied upon. (See [#114](https://github.com/bluss/arrayvec/pull/114))
|
||
- `ArrayString` updated to not use uninitialized memory, it instead zeros its
|
||
backing array. This will be refined in the next version, since we
|
||
need to make changes to the user visible API.
|
||
- The `use_union` feature now does nothing (like its documentation foretold).
|
||
|
||
|
||
- 0.4.8
|
||
|
||
- Implement Clone and Debug for `IntoIter` by @clarcharr
|
||
- Add more array sizes under crate features. These cover all in the range
|
||
up to 128 and 129 to 255 respectively (we have a few of those by default):
|
||
|
||
- `array-size-33-128`
|
||
- `array-size-129-255`
|
||
|
||
- 0.4.7
|
||
|
||
- Fix future compat warning about raw pointer casts
|
||
- Use `drop_in_place` when dropping the arrayvec by-value iterator
|
||
- Decrease mininum Rust version (see docs) by @jeehoonkang
|
||
|
||
- 0.3.25
|
||
|
||
- Fix future compat warning about raw pointer casts
|
||
|
||
- 0.4.6
|
||
|
||
- Fix compilation on 16-bit targets. This means, the 65536 array size is not
|
||
included on these targets.
|
||
|
||
- 0.3.24
|
||
|
||
- Fix compilation on 16-bit targets. This means, the 65536 array size is not
|
||
included on these targets.
|
||
- Fix license files so that they are both included (was fixed in 0.4 before)
|
||
|
||
- 0.4.5
|
||
|
||
- Add methods to `ArrayString` by @DenialAdams:
|
||
|
||
- `.pop() -> Option<char>`
|
||
- `.truncate(new_len)`
|
||
- `.remove(index) -> char`
|
||
|
||
- Remove dependency on crate odds
|
||
- Document debug assertions in unsafe methods better
|
||
|
||
- 0.4.4
|
||
|
||
- Add method `ArrayVec::truncate()` by @niklasf
|
||
|
||
- 0.4.3
|
||
|
||
- Improve performance for `ArrayVec::extend` with a lower level
|
||
implementation (#74)
|
||
- Small cleanup in dependencies (use no std for crates where we don't need more)
|
||
|
||
- 0.4.2
|
||
|
||
- Add constructor method `new` to `CapacityError`.
|
||
|
||
- 0.4.1
|
||
|
||
- Add `Default` impl to `ArrayString` by @tbu-
|
||
|
||
- 0.4.0
|
||
|
||
- Reformed signatures and error handling by @bluss and @tbu-:
|
||
|
||
- `ArrayVec`'s `push, insert, remove, swap_remove` now match `Vec`'s
|
||
corresponding signature and panic on capacity errors where applicable.
|
||
- Add fallible methods `try_push, insert` and checked methods
|
||
`pop_at, swap_pop`.
|
||
- Similar changes to `ArrayString`'s push methods.
|
||
|
||
- Use a local version of the `RangeArgument` trait
|
||
- Add array sizes 50, 150, 200 by @daboross
|
||
- Support serde 1.0 by @daboross
|
||
- New method `.push_unchecked()` by @niklasf
|
||
- `ArrayString` implements `PartialOrd, Ord` by @tbu-
|
||
- Require Rust 1.14
|
||
- crate feature `use_generic_array` was dropped.
|
||
|
||
- 0.3.23
|
||
|
||
- Implement `PartialOrd, Ord` as well as `PartialOrd<str>` for
|
||
`ArrayString`.
|
||
|
||
- 0.3.22
|
||
|
||
- Implement `Array` for the 65536 size
|
||
|
||
- 0.3.21
|
||
|
||
- Use `encode_utf8` from crate odds
|
||
- Add constructor `ArrayString::from_byte_string`
|
||
|
||
- 0.3.20
|
||
|
||
- Simplify and speed up `ArrayString`’s `.push(char)`-
|
||
|
||
- 0.3.19
|
||
|
||
- Add new crate feature `use_generic_array` which allows using their
|
||
`GenericArray` just like a regular fixed size array for the storage
|
||
of an `ArrayVec`.
|
||
|
||
- 0.3.18
|
||
|
||
- Fix bounds check in `ArrayVec::insert`!
|
||
It would be buggy if `self.len() < index < self.capacity()`. Take note of
|
||
the push out behavior specified in the docs.
|
||
|
||
- 0.3.17
|
||
|
||
- Added crate feature `use_union` which forwards to the nodrop crate feature
|
||
- Added methods `.is_full()` to `ArrayVec` and `ArrayString`.
|
||
|
||
- 0.3.16
|
||
|
||
- Added method `.retain()` to `ArrayVec`.
|
||
- Added methods `.as_slice(), .as_mut_slice()` to `ArrayVec` and `.as_str()`
|
||
to `ArrayString`.
|
||
|
||
- 0.3.15
|
||
|
||
- Add feature std, which you can opt out of to use `no_std` (requires Rust 1.6
|
||
to opt out).
|
||
- Implement `Clone::clone_from` for ArrayVec and ArrayString
|
||
|
||
- 0.3.14
|
||
|
||
- Add `ArrayString::from(&str)`
|
||
|
||
- 0.3.13
|
||
|
||
- Added `DerefMut` impl for `ArrayString`.
|
||
- Added method `.simplify()` to drop the element for `CapacityError`.
|
||
- Added method `.dispose()` to `ArrayVec`
|
||
|
||
- 0.3.12
|
||
|
||
- Added ArrayString, a fixed capacity analogy of String
|
||
|
||
- 0.3.11
|
||
|
||
- Added trait impls Default, PartialOrd, Ord, Write for ArrayVec
|
||
|
||
- 0.3.10
|
||
|
||
- Go back to using external NoDrop, fixing a panic safety bug (issue #3)
|
||
|
||
- 0.3.8
|
||
|
||
- Inline the non-dropping logic to remove one drop flag in the
|
||
ArrayVec representation.
|
||
|
||
- 0.3.7
|
||
|
||
- Added method .into_inner()
|
||
- Added unsafe method .set_len()
|