Releases: tower120/any_vec
Releases · tower120/any_vec
Apeend & Extend (0.15.0)
no_std (0.14.0)
Added
- Now library
no_stdfriendly.
Removed
- Helpers
any_value::move_out,any_value::move_out_w_sizeremoved as redundant.
AnyValue refactor
Added
AnyVecnow can work withAnyValueSizeless.any_value::traitsprelude.
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+AnyValueUnknowntraits broken down into:AnyValueUnknown->AnyValueTypeless.- Introduced
AnyValueSizeless-AnyValuethat does know size and type. - Added
any_value::move_out,any_value::move_out_w_sizehelpers.
- Changed AnyValueRaw non-owning wrappers names:
AnyValueRawUnknown->AnyValueTypelessRaw.- Introduced
AnyValueSizelessRaw.
v0.12.0
RawParts + AnyValueUnknown
Added
AnyValueUnknown
AnyValuesplit intoAnyValueUnknown+AnyValue.AnyValueMutsplit 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
HeapMemimplementsMemRawParts.
Fixed
AnyVec::splicenow check types.
v0.10.0
Changed
AnyValue::bytes()->*const u8andAnyValue::size()->usizereplaced with
AnyValue::as_bytes()->&[u8]. Same forAnyValueMut.AnyValueWrappernowAnyValueMut.AnyValueRawnowAnyValueMut.AnyValue::as_bytes()now return&[u8].
Added
Debugimplemented forAnyVec,AnyVecTyped.AnyValueMut::swap()added.AnyVec/AnyVecTyped::set_len()added.AnyVec::as_bytes_mutadded.AnyVec::spare_bytes_mutadded.AnyVecTyped::spare_capacity_mutadded.mem::StackNadded.
Fixed
- Stacked Borrow friendly now.
mem::Stackcapacity fixed.
v0.9.1
MemBuilder
Added
MemBuilder+Mem= Allocator.StackMemBuilder.AnyVec::clone_empty_inreservereserve_exactshrink_to_fitshrink_topopis_empty
Drain + Splice
Added
- Added
AnyVec::at- ergonomic version ofget. AnyVecRefnow cloneable.ElementRefnow cloneable.- non-consuming iterators now cloneable.
AnyVec::drain.AnyVecTyped::drain.AnyVec::slice.AnyVecTyped::slice.AnyVeciterators.AnyVec::clone_empty, to constructAnyVecof the same type.IntoIteratorimplemented.
Changed
crate::refsbeing implementation details, hided.
LazyClone
Added
AnyValueClonableandLazyCloneadded.AnyVecgetters added.AnyValueMutadded. All remove operations now returnAnyValueMut+AnyValueClonable.
Changed
any_value::AnyValue::downcast<T>now returnOption<T>.traits::EmptyTraitrenamed totraits::None.AnyValueinterface changed.
Optimized
- Performance of all remove operations slightly increased.