- Make
Vec::set_len
public and implementVec::{spare_capacity_mut, split_at_spare_mut}
. - New methods
Vec::{extend_to_capacity, split_borrowed}
,SliceVec::split_and_shrink_to
- Generalize implementations of
PartialEq
,PartialOrd
forarena::Box
.
- Relax unnecessarily strict trait bounds on
{AllocVec, AllocDeque, AllocHeap}::{with_capacity, clone}
.
- Rename
ContiguousStorage<T>
toStorage<R>
and overhaul the interface; see this blog post on the design process for motivation - Add super traits to
Capacity
trait, addconst MAX_REPRESENTABLE
; implementors are no longer required to perform validation on every call - Remove the
nightly
feature flag and thefeature(min_const_generics)
attribute. - Rework the module hierarchy, introducing the
collections
module - Rename
Array{Vec, Deque, Heap}
toInline*
for consistency withInlineObject
; removeTiArrayVec
,TiArrayDeque
, andTiArrayHeap
in favor of default type parameters onInline{Vec, Deque, Heap}
, raising minimum supported compiler version to 1.59.0. - Redefine
ArenaStorage
as a struct for compatibility with non-array-like layouts - Remove
HeapStorage
type alias and addAllocStorage
struct (similar toArenaStorage
) - Rename
Arena::{collect, try_collect}
toArena::{collect_slice, try_collect_slice}
- Remove
Arena::{try_vec, try_deque, try_heap, vec, deque, heap}
in favor of the genericArena::{try_with_capacity, with_capacity}
- Add the
CapacityError
type, changing the return type of several fallible methods.
- New
string
module for working with UTF-8 encoded text - New
cache
module for forgetful map data structures DirectPool
, a direct analogue toslotmap::SlotMap
PackedPool
, a direct analogue toslotmap::DenseSlotMap
- New
option_group
module for bit-packing discriminants of multiple optional values - Experimental
object
module for owned, allocation-free trait objects - Implement
Vec::drain_filter
andVec::drain_filter_range
- New methods
Deque::force_push_front
andDeque::force_push_back
for usingDeque
as a classic ring buffer - New methods
Arena::static_with_capacity
for ergonomically constructing arenas when thealloc
crate is available, andArena::{collect_with_capacity, try_collect_with_capacity}
, which more closely approximateIterator::collect
than the oldcollect
methods - Add support for multiple type declarations in a single
index_type!
invocation
- Leaking a
vec::Drain
ordeque::Drain
no longer leaves the underlying data structure in an invalid state, potentially causing undefined behaviour - Failing to allocate an array from an
Arena
no longer creates a null reference to an empty slice, causing undefined behaviour
- Add
BinaryHeap
andDeque
implementations - Add
Vec::{into_raw_parts, from_raw_parts}
- Rename
HeapVec
toAllocVec
for consistency withAllocHeap
(chosen in favour ofHeapHeap
) - Rename
Capacity::into_usize
toas_usize
andArenaWriter
toWriter
to comply with naming conventions - Fix a bug in
Vec::drain
that made right-open ranges not work correctly HeapVec::with_capacity
takes a value of generic typeI: Capacity
rather thanusize
- Fix potential undefined behavior in
Vec::{deref, deref_mut, into_iter}
detected by Miri
Initial Release