These are changes that weren't ready in time for 1.0 (#73). Forward port changes from the v1 branch: - [ ] bincode2 support #375 Requires newer version of Rust than current minimum (1.36): - [x] Use const generics to change `SmallVec<[T; N]>` to `SmallVec<T, N>`. Remove the `Array` trait. (#240, Rust 1.51). - [x] Use the `union` representation by default and remove the optional `union` feature added in #94 (Rust 1.49). - [x] Make `SmallVec::new` a `const fn` (#263). Depends on unstable Rust features: - [ ] Support custom allocators (#55, rust-lang/rust#32838). - [ ] Use specialization to optimize `extend`, `insert_many`, and `from` for slices of `Copy` types. Deprecate and remove `extend_from_slice`, `insert_from_slice`, and `from_slice` (#384, rust-lang/rust#31844). - [x] Implement the `Error` trait without requiring `std` (#355, rust-lang/rust#103765). Breaking API changes: - [x] Fix variance of `SmallVec<[T; N]>` over `T` (#146)? - [x] Remove the deprecated `ExtendFromSlice` trait. - [x] Remove unused `&self` parameter from `inline_size` method. - [x] Deprecate the `write` feature and add a `std` feature instead (#355, #356). - [x] Remove the non-standard `insert_many` method (#255)?
These are changes that weren't ready in time for 1.0 (#73).
Forward port changes from the v1 branch:
Requires newer version of Rust than current minimum (1.36):
SmallVec<[T; N]>toSmallVec<T, N>. Remove theArraytrait. (RFC: rewrite based on min_const_generics for 2.0 #240, Rust 1.51).unionrepresentation by default and remove the optionalunionfeature added in Use a union to reduce the size of SmallVec [v2] #94 (Rust 1.49).SmallVec::newaconst fn(MakeSmallVec::newconst #263).Depends on unstable Rust features:
extend,insert_many, andfromfor slices ofCopytypes. Deprecate and removeextend_from_slice,insert_from_slice, andfrom_slice(Rework specialization #384, Tracking issue for specialization (RFC 1210) rust-lang/rust#31844).Errortrait without requiringstd(Implementstd::error::ErrorforCollectionAllocErr#355, Tracking Issue forErrorincorerust-lang/rust#103765).Breaking API changes:
SmallVec<[T; N]>overT(SmallVec<[T; N]> is invariant over T #146)?ExtendFromSlicetrait.&selfparameter frominline_sizemethod.writefeature and add astdfeature instead (Implementstd::error::ErrorforCollectionAllocErr#355, feat: replacewritefeature withstdfeature #356).insert_manymethod (Deprecate insert_many (and add splice?) #255)?