A vector with fixed capacity.
Please read the API documentation here
- 0.5.1
- Add
as_ptr,as_mut_ptraccessors directly on theArrayVecby @tbu- (matches the same addition toVecwhich 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 intoArrayString(uninit best practice fix). - Use raw pointers instead of
get_unchecked_mutwhere 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::disposeis now deprecated (it has no purpose anymore)
- Add
- 0.4.12
- Use raw pointers instead of
get_unchecked_mutwhere the target may be uninitialized everywhere relevant in the ArrayVec implementation.
- Use raw pointers instead of
- 0.5.0
- Use
MaybeUninit(now unconditionally) in the implementation ofArrayVec - Use
MaybeUninit(now unconditionally) in the implementation ofArrayString - The crate feature for serde serialization is now named
serde. - Updated the
Arraytrait interface, and it is now easier to use for users outside the crate. - Add
FromStrimpl forArrayStringby @despawnerer - Add method
try_extend_from_slicetoArrayVec, which is always effecient by @Thomasdezeeuw. - Add method
remaining_capacityby @Thomasdezeeuw - Improve performance of the
extendmethod. - The index type of zero capacity vectors is now itself zero size, by @clarfon
- Use
drop_in_placefor 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
MaybeUninitimprovements.
- Use
- 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 theunionversion that was introduced in 0.4.9, to allay some soundness concerns.
- Use
- 0.4.9
- Use
unionin 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, theArrayVechas no space overhead in its memory layout, although the size of the vec should not be relied upon. (See #114) ArrayStringupdated 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_unionfeature now does nothing (like its documentation foretold).
- Use
- 0.4.8
- Implement Clone and Debug for
IntoIterby @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-128array-size-129-255
- Implement Clone and Debug for
- 0.4.7
- Fix future compat warning about raw pointer casts
- Use
drop_in_placewhen 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
ArrayStringby @DenialAdams:.pop() -> Option<char>.truncate(new_len).remove(index) -> char
- Remove dependency on crate odds
- Document debug assertions in unsafe methods better
- Add methods to
- 0.4.4
- Add method
ArrayVec::truncate()by @niklasf
- Add method
- 0.4.3
- Improve performance for
ArrayVec::extendwith a lower level implementation (#74) - Small cleanup in dependencies (use no std for crates where we don't need more)
- Improve performance for
- 0.4.2
- Add constructor method
newtoCapacityError.
- Add constructor method
- 0.4.1
- Add
Defaultimpl toArrayStringby @tbu-
- Add
- 0.4.0
- Reformed signatures and error handling by @bluss and @tbu-:
ArrayVec'spush, insert, remove, swap_removenow matchVec's corresponding signature and panic on capacity errors where applicable.- Add fallible methods
try_push, insertand checked methodspop_at, swap_pop. - Similar changes to
ArrayString's push methods.
- Use a local version of the
RangeArgumenttrait - Add array sizes 50, 150, 200 by @daboross
- Support serde 1.0 by @daboross
- New method
.push_unchecked()by @niklasf ArrayStringimplementsPartialOrd, Ordby @tbu-- Require Rust 1.14
- crate feature
use_generic_arraywas dropped.
- Reformed signatures and error handling by @bluss and @tbu-:
- 0.3.23
- Implement
PartialOrd, Ordas well asPartialOrd<str>forArrayString.
- Implement
- 0.3.22
- Implement
Arrayfor the 65536 size
- Implement
- 0.3.21
- Use
encode_utf8from crate odds - Add constructor
ArrayString::from_byte_string
- Use
- 0.3.20
- Simplify and speed up
ArrayString’s.push(char)-
- Simplify and speed up
- 0.3.19
- Add new crate feature
use_generic_arraywhich allows using theirGenericArrayjust like a regular fixed size array for the storage of anArrayVec.
- Add new crate feature
- 0.3.18
- Fix bounds check in
ArrayVec::insert! It would be buggy ifself.len() < index < self.capacity(). Take note of the push out behavior specified in the docs.
- Fix bounds check in
- 0.3.17
- Added crate feature
use_unionwhich forwards to the nodrop crate feature - Added methods
.is_full()toArrayVecandArrayString.
- Added crate feature
- 0.3.16
- Added method
.retain()toArrayVec. - Added methods
.as_slice(), .as_mut_slice()toArrayVecand.as_str()toArrayString.
- Added method
- 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_fromfor ArrayVec and ArrayString
- Add feature std, which you can opt out of to use
- 0.3.14
- Add
ArrayString::from(&str)
- Add
- 0.3.13
- Added
DerefMutimpl forArrayString. - Added method
.simplify()to drop the element forCapacityError. - Added method
.dispose()toArrayVec
- Added
- 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()
Dual-licensed to be compatible with the Rust project.
Licensed under the Apache License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0 or the MIT license http://opensource.org/licenses/MIT, at your option. This file may not be copied, modified, or distributed except according to those terms.