-
1.4.5- Reduce needed recursion limit to avoid next-solver FCW #172
-
1.4.4- Improved on some impossibly rare edge cases
-
1.4.3- Bump
typenumto1.20.1, which improvestarr!ergonomics #169 - Add code coverage metrics and tests (96.2% as of this version)
- Fix small soundness bug in
chunks_from_slice_mut
- Bump
-
1.4.2 -
1.4.1- Fix some issues with using ZSTs with
Box<GenericArray<ZST, N>>. Partial credit to #166.
- Fix some issues with using ZSTs with
-
1.4.0- Add
subtle,arbitrary,bytemuck,bitvecandas-sliceimplementations forGenericArray. - Add
GenericSequence::repeatfor creating sequences/arrays with repeated elements. - Add
FallibleGenericSequencewithtry_generateandfrom_fallible_iterfor fallible generation of sequences/arrays.- Added
AllocErrortype (requiresallocfeature) for heap allocation failures withtry_generate.
- Added
- Add
try_foldandtry_maptoFunctionalSequencefor fallible folding/mapping of sequences/arrays. - Add
try_from_fallible_itertoGenericArrayfor fallible construction from fallible iterators. - Add
each_ref/each_mutmethods toGenericArrayfor creating arrays of references to the elements. - Fixed some resource leakages and potential UB in degenerate cases.
- Add
-
1.3.5- Fixed
const_transmutenot compiling between Rust versions 1.74.0 and 1.83.0. Yanked1.3.4.
- Fixed
-
1.3.4- Significantly improve stack usage of
GenericArraymethods in unoptimized (-C opt-level=0) build modes. - Introduce the
hybrid-array-0_4feature to allow interop betweengeneric-array1.x andhybrid-array0.4 versions. - Add
ConstGenericArraytype alias for easier usage with literal const usizes. - Implement
ZeroizeOnDropforGenericArraywhenT: ZeroizeOnDrop(when using thezeroizefeature).
- Significantly improve stack usage of
-
1.3.2- Introduce the
compat-0_14feature to allow interop betweengeneric-array1.x and 0.14 versions.
- Introduce the
-
1.3.1- Lower MSRV to 1.65.0 (minimum required for GATs)
- Make some functions
constonly on Rust 1.83.0 or newer, otherwise they are non-const. - Implement
core::error::ErrorforLengthErroron Rust 1.81.0 or newer.
-
1.3.0 -
1.2.1- Replace
doc_auto_cfgwithdoc_cfg#155
- Replace
-
1.2.0- Mark more functions as
const - Bump MSRV to 1.83.0 (reverted in
generic-array 1.3.1)
- Mark more functions as
-
1.1.1- Add
FlattenandUnflattentraits for converting between nested arrays.
- Add
-
1.1.0- Add
Removetrait that addsremove/swap_removetoGenericArray(inspired by #147) - Soft-deprecate
internals::ArrayBuilderin favor ofinternals::IntrusiveArrayBuilder
- Add
-
1.0.1- Update faster-hex dependency
- Mark
from_iteras#[inline]to significantly improve codegen.
-
1.0.0- Use GATs for
ArrayLength! - Bump MSRV to 1.65.0
- Use Rust 2021 edition #118 + non-PR upgrade later with GATs.
- Allow
arr!macro inconst#129 - Add
arr!repeat-expressions #130 - Implement
const-defaulttrait support #131 - Make
as_slice()/from_slice()const. - Add const
from_array/into_arraymethods. - Make
ArrayLength: 'static - Replace
From<&[T]>withTryFrom<&[T]> - Add
try_from_iterfor fallible construction from iterator. - Use
typenum'sconst-genericsfeature forconst N: usize-basedFromimplementations between[T; N]andGenericArray<T, N>- Also added the
IntoArrayLengthtrait andConstArrayLengthtype-alias for working with typenum'sConst<N>easier.
- Also added the
alloccrate feature- Added
box_arr!macro with the same syntax asarr!, but returns aBox<GenericArray<T, N>> - Moving between heap and stack
impl TryFrom<Vec<T>> for GenericArray<T, N>impl TryFrom<Box<[T]>> for GenericArray<T, N>impl From<GenericArray<T, N>> for Vec<T>impl From<GenericArray<T, N>> for Box<[T]>
- Methods for converting between
Box<GenericArray<T, N>>andVec<T>/Box<[T]> GenericSequenceandFunctionalSequenceimplemented forBox<GenericArray<T, N>>, allowing for heap-based manipulation of fixed-size arrays.
- Added
Deserializeno longer requiresT: Default- Make
IntoArrayLength,MappedSequence, andFunctionalSequencesafe traits. - Simplify
arr!macro syntax.arr![1, 2, 3, 4]orarr![T; N]forms, no explicit length for first variant.- No longer casts given expressions internally.
- Type-deduction works similarly to
vec![], in that an empty array has an unknown type
- Add the
internalsCargo feature to expose dangerous things. - Added additional methods for working with chunks of arrays.
- Added
Fromimpls for tuples with 1-12 (inclusive) items of the same type, matching the standard library. - Workaround potential Rust/LLVM regressions with
FunctionalSequence::zip()/::map() - Added the
faster-hexoptional dependency for SIMD-accelerated hex encoding - Improve documentation
- Use GATs for
-
0.14.6 -
0.14.5- Fix unsoundness behavior in
GenericArrayIter::clone(#120)
- Fix unsoundness behavior in
-
0.14.4- Update
typenumto1.12.0 - Make
Dropa no-op when the inner type does not requireDrop(usingcore::mem::needs_drop)
- Update
-
0.14.3- Improve behavior of
GenericArray::from_exact_iterto assumeExactIterators can lie. - Fix alignment of zero-length
GenericArrays - Implement
From<&[T; N]> for &GenericArray<T, N>and its mutable variant
- Improve behavior of
-
0.14.2- Lower MSRV to
1.36.0withoutFrom<[T; N]>implementations.
- Lower MSRV to
-
0.14.1- Fix element conversions in
arr!macro.
- Fix element conversions in
-
0.14.0- Replace
Intoimplementations with the more generalFrom.- Requires minumum Rust version of 1.41.0
- Fix unsoundness in
arr!macro. - Fix meta variable misuse
- Fix Undefined Behavior across the crate by switching to
MaybeUninit - Improve some documentation and doctests
- Add
AsRef<[T; N]>andAsMut<[T; N]>impls toGenericArray<T, N> - Add
Splitimpl for&GenericArrayand&mut GenericArray
- Replace
-
0.13.2- Add feature
more_lengths, which adds moreFrom/Intoimplementations for arrays of various lengths.
- Add feature
-
0.13.1- Mark
GenericArrayas#[repr(transparent)] - Implement
Into<[T; N]>forGenericArray<T, N>up to N=32
- Mark
-
0.13.0- Allow
arr!to be imported with use syntax.- Requires minumum Rust version of 1.30.1
- Allow
-
0.12.2- Implement
FusedIteratorforGenericArrayIter
- Implement
-
0.12.1- Use internal iteration where possible and provide more efficient internal iteration methods.
-
0.12.0- Allow trailing commas in
arr!macro. - BREAKING: Serialize
GenericArrayusingserdetuples, instead of variable-length sequences. This may not be compatible with old serialized data.
- Allow trailing commas in
-
0.11.0- BREAKING Redesign
GenericSequencewith an emphasis on use in generic type parameters. - Add
MappedGenericSequenceandFunctionalSequence- Implements optimized
map,zipandfoldforGenericArray,&GenericArrayand&mut GenericArray
- Implements optimized
- BREAKING Remove
map_ref,zip_refandmap_slicemap_sliceis now equivalent toGenericArray::from_iter(slice.iter().map(...))
- BREAKING Redesign
-
0.10.0- Add
GenericSequence,Lengthen,Shorten,SplitandConcattraits. - Redefine
transmuteto avert errors.
- Add
-
0.9.0- Rewrite construction methods to be well-defined in panic situations, correctly dropping elements.
NoDropcrate replaced byManuallyDropas it became stable in Rust core.- Add optimized
map/map_refandzip/zip_refmethods toGenericArray
-
0.8.0- Implement
AsRef,AsMut,Borrow,BorrowMut,HashforGenericArray - Update
serdeto1.0 - Update
typenum - Make macro
arr!non-cloning - Implement
From<[T; N]>up toN=32 - Fix #45
- Implement
-
0.7.0- Upgrade
serdeto0.9 - Make
serdewithno_std - Implement
PartialOrd/OrdforGenericArray
- Upgrade
-
0.6.0- Fixed #30
- Implement
DefaultforGenericArray - Implement
LowerHexandUpperHexforGenericArray<u8, N> - Use
precisionformatting field in hex representation - Add
as_slice,as_mut_slice - Remove
GenericArray::newin favor ofDefaulttrait - Add
from_sliceandfrom_mut_slice no_stdandcorefor crate.
-
0.5.0- Update
serde - remove
no_stdfeature, fixed #19
- Update
-
0.4.0- Re-export
typenum
- Re-export
-
0.3.0- Implement
IntoIterforGenericArray - Add
mapmethod - Add optional
serde(de)serialization support feature.
- Implement
-
< 0.3.0- Initial implementation in late 2015