Releases: tower120/any_vec
Releases · tower120/any_vec
no_std (0.14.0)
AnyValue refactor
Added
AnyVec
now can work withAnyValueSizeless
.any_value::traits
prelude.
Optimized
AnyValue
- family downcast now use provided type for compile-time optimization,
instead of potentially unknown underlying type (which disabled optimization technique).
Breaking Changes
AnyValue
+AnyValueUnknown
traits broken down into:AnyValueUnknown
->AnyValueTypeless
.- Introduced
AnyValueSizeless
-AnyValue
that does know size and type. - Added
any_value::move_out
,any_value::move_out_w_size
helpers.
- Changed AnyValueRaw non-owning wrappers names:
AnyValueRawUnknown
->AnyValueTypelessRaw
.- Introduced
AnyValueSizelessRaw
.
v0.12.0
RawParts + AnyValueUnknown
Added
AnyValueUnknown
AnyValue
split intoAnyValueUnknown
+AnyValue
.AnyValueMut
split intoAnyValueMutUnknown
+AnyValueMut
.AnyVec::push_unchecked(AnyValueUnknown)
.AnyVec::insert_unchecked(usize, AnyValueUnknown)
.AnyValueRawUnknown
.mem::Empty
.
Raw parts
AnyVec::into_raw_parts
/AnyVec::from_raw_parts
/RawParts
.MemRawParts
.AnyVec::element_drop
.AnyVec::element_clone
.
Changed
HeapMem
implementsMemRawParts
.
Fixed
AnyVec::splice
now check types.
v0.10.0
Changed
AnyValue::bytes()->*const u8
andAnyValue::size()->usize
replaced with
AnyValue::as_bytes()->&[u8]
. Same forAnyValueMut
.AnyValueWrapper
nowAnyValueMut
.AnyValueRaw
nowAnyValueMut
.AnyValue::as_bytes()
now return&[u8]
.
Added
Debug
implemented forAnyVec
,AnyVecTyped
.AnyValueMut::swap()
added.AnyVec
/AnyVecTyped
::set_len()
added.AnyVec::as_bytes_mut
added.AnyVec::spare_bytes_mut
added.AnyVecTyped::spare_capacity_mut
added.mem::StackN
added.
Fixed
- Stacked Borrow friendly now.
mem::Stack
capacity fixed.
v0.9.1
MemBuilder
Added
MemBuilder
+Mem
= Allocator.Stack
MemBuilder.AnyVec::clone_empty_in
reserve
reserve_exact
shrink_to_fit
shrink_to
pop
is_empty
Drain + Splice
Added
- Added
AnyVec::at
- ergonomic version ofget
. AnyVecRef
now cloneable.ElementRef
now cloneable.- non-consuming iterators now cloneable.
AnyVec::drain
.AnyVecTyped::drain
.AnyVec::slice
.AnyVecTyped::slice
.AnyVec
iterators.AnyVec::clone_empty
, to constructAnyVec
of the same type.IntoIterator
implemented.
Changed
crate::refs
being implementation details, hided.
LazyClone
Added
AnyValueClonable
andLazyClone
added.AnyVec
getters added.AnyValueMut
added. All remove operations now returnAnyValueMut
+AnyValueClonable
.
Changed
any_value::AnyValue::downcast<T>
now returnOption<T>
.traits::EmptyTrait
renamed totraits::None
.AnyValue
interface changed.
Optimized
- Performance of all remove operations slightly increased.
Send, Sync, Clone
Added
AnyVec
now can be Sync, Send, Clone.
Changed
any_value::AnyValueTemp
moved toops::AnyValueTemp
any_vec::Unknown
->any_vec::any_value::Unknown
Fixed
AnyVec::insert
now check type again.AnyValueWrapper::downcast
UB fx.