Open
Description
These are changes that weren't ready in time for 1.0 (#73).
Requires newer version of Rust than current minimum (1.36):
- Use const generics to change
SmallVec<[T; N]>
toSmallVec<T, N>
. Remove theArray
trait. (RFC: rewrite based on min_const_generics for 2.0 #240, Rust 1.51). - Use the
union
representation by default and remove the optionalunion
feature added in Use a union to reduce the size of SmallVec [v2] #94 (Rust 1.49). - Make
SmallVec::new
aconst fn
(MakeSmallVec::new
const #263).
Depends on unstable Rust features:
- Support custom allocators (Support parametric allocators #55, Allocator traits and std::heap rust-lang/rust#32838).
- Use specialization to optimize
extend
,insert_many
, andfrom
for slices ofCopy
types. Deprecate and removeextend_from_slice
,insert_from_slice
, andfrom_slice
(Rework specialization #384, Tracking issue for specialization (RFC 1210) rust-lang/rust#31844). - Implement the
Error
trait without requiringstd
(Implementstd::error::Error
forCollectionAllocErr
#355, Tracking Issue forError
incore
rust-lang/rust#103765).
Breaking API changes:
- Fix variance of
SmallVec<[T; N]>
overT
(SmallVec<[T; N]> is invariant over T #146)? - Remove the deprecated
ExtendFromSlice
trait. - Remove unused
&self
parameter frominline_size
method. - Deprecate the
write
feature and add astd
feature instead (Implementstd::error::Error
forCollectionAllocErr
#355, feat: replacewrite
feature withstd
feature #356). - Remove the non-standard
insert_many
method (Deprecate insert_many (and add splice?) #255)?
Metadata
Metadata
Assignees
Labels
No labels