Skip to content

Latest commit

 

History

History
145 lines (128 loc) · 7.11 KB

CHANGELOG.md

File metadata and controls

145 lines (128 loc) · 7.11 KB
  • 1.1.1

    • Add Flatten and Unflatten traits for converting between nested arrays.
  • 1.1.0

    • Add Remove trait that adds remove/swap_remove to GenericArray (inspired by #147)
    • Soft-deprecate internals::ArrayBuilder in favor of internals::IntrusiveArrayBuilder
  • 1.0.1

    • Update faster-hex dependency
    • Mark from_iter as #[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 in const #129
    • Add arr! repeat-expressions #130
    • Implement const-default trait support #131
    • Make as_slice()/from_slice() const.
    • Add const from_array/into_array methods.
    • Make ArrayLength: 'static
    • Replace From<&[T]> with TryFrom<&[T]>
    • Add try_from_iter for fallible construction from iterator.
    • Use typenum's const-generics feature for const N: usize-based From implementations between [T; N] and GenericArray<T, N>
      • Also added the IntoArrayLength trait and ConstArrayLength type-alias for working with typenum's Const<N> easier.
    • alloc crate feature
      • Added box_arr! macro with the same syntax as arr!, but returns a Box<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>> and Vec<T>/Box<[T]>
      • GenericSequence and FunctionalSequence implemented for Box<GenericArray<T, N>>, allowing for heap-based manipulation of fixed-size arrays.
    • Deserialize no longer requires T: Default
    • Make IntoArrayLength, MappedSequence, and FunctionalSequence safe traits.
    • Simplify arr! macro syntax.
      • arr![1, 2, 3, 4] or arr![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 internals Cargo feature to expose dangerous things.
    • Added additional methods for working with chunks of arrays.
    • Added From impls 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-hex optional dependency for SIMD-accelerated hex encoding
    • Improve documentation
  • 0.14.6

    • Add an optional Zeroize impl for GenericArray (#126 and #112)
    • Cleanup some unsafe (#125) and typos (#114)
    • Use include in Cargo.toml to reduce package size
  • 0.14.5

    • Fix unsoundness behavior in GenericArrayIter::clone (#120)
  • 0.14.4

    • Update typenum to 1.12.0
    • Make Drop a no-op when the inner type does not require Drop (using core::mem::needs_drop)
  • 0.14.3

    • Improve behavior of GenericArray::from_exact_iter to assume ExactIterators can lie.
    • Fix alignment of zero-length GenericArrays
    • Implement From<&[T; N]> for &GenericArray<T, N> and its mutable variant
  • 0.14.2

    • Lower MSRV to 1.36.0 without From<[T; N]> implementations.
  • 0.14.1

    • Fix element conversions in arr! macro.
  • 0.14.0

    • Replace Into implementations with the more general From.
      • 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]> and AsMut<[T; N]> impls to GenericArray<T, N>
    • Add Split impl for &GenericArray and &mut GenericArray
  • 0.13.2

    • Add feature more_lengths, which adds more From/Into implementations for arrays of various lengths.
  • 0.13.1

    • Mark GenericArray as #[repr(transparent)]
    • Implement Into<[T; N]> for GenericArray<T, N> up to N=32
  • 0.13.0

    • Allow arr! to be imported with use syntax.
      • Requires minumum Rust version of 1.30.1
  • 0.12.2

    • Implement FusedIterator for GenericArrayIter
  • 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 GenericArray using serde tuples, instead of variable-length sequences. This may not be compatible with old serialized data.
  • 0.11.0

    • BREAKING Redesign GenericSequence with an emphasis on use in generic type parameters.
    • Add MappedGenericSequence and FunctionalSequence
      • Implements optimized map, zip and fold for GenericArray, &GenericArray and &mut GenericArray
    • BREAKING Remove map_ref, zip_ref and map_slice
      • map_slice is now equivalent to GenericArray::from_iter(slice.iter().map(...))
  • 0.10.0

    • Add GenericSequence, Lengthen, Shorten, Split and Concat traits.
    • Redefine transmute to avert errors.
  • 0.9.0

    • Rewrite construction methods to be well-defined in panic situations, correctly dropping elements.
    • NoDrop crate replaced by ManuallyDrop as it became stable in Rust core.
    • Add optimized map/map_ref and zip/zip_ref methods to GenericArray
  • 0.8.0

    • Implement AsRef, AsMut, Borrow, BorrowMut, Hash for GenericArray
    • Update serde to 1.0
    • Update typenum
    • Make macro arr! non-cloning
    • Implement From<[T; N]> up to N=32
    • Fix #45
  • 0.7.0

    • Upgrade serde to 0.9
    • Make serde with no_std
    • Implement PartialOrd/Ord for GenericArray
  • 0.6.0

    • Fixed #30
    • Implement Default for GenericArray
    • Implement LowerHex and UpperHex for GenericArray<u8, N>
    • Use precision formatting field in hex representation
    • Add as_slice, as_mut_slice
    • Remove GenericArray::new in favor of Default trait
    • Add from_slice and from_mut_slice
    • no_std and core for crate.
  • 0.5.0

    • Update serde
    • remove no_std feature, fixed #19
  • 0.4.0

    • Re-export typenum
  • 0.3.0

    • Implement IntoIter for GenericArray
    • Add map method
    • Add optional serde (de)serialization support feature.
  • < 0.3.0

    • Initial implementation in late 2015