pub trait MutableZeroVecLike<'a, T: ?Sized>: ZeroVecLike<T> {
    type OwnedType;

    fn zvl_insert(&mut self, index: usize, value: &T);
    fn zvl_remove(&mut self, index: usize) -> Self::OwnedType;
    fn zvl_replace(&mut self, index: usize, value: &T) -> Self::OwnedType;
    fn zvl_push(&mut self, value: &T);
    fn zvl_with_capacity(cap: usize) -> Self;
    fn zvl_clear(&mut self);
    fn zvl_reserve(&mut self, addl: usize);
    fn owned_as_t(o: &Self::OwnedType) -> &T;
    fn zvl_from_borrowed(b: &'a Self::SliceVariant) -> Self;
    fn zvl_as_borrowed_inner(&self) -> Option<&'a Self::SliceVariant>;
}
Expand description

Trait abstracting over ZeroVec and VarZeroVec, for use in ZeroMap. You should not be implementing or calling this trait directly.

This trait augments ZeroVecLike with methods allowing for mutation of the underlying vector for owned vector types.

Methods are prefixed with zvl_* to avoid clashes with methods on the types themselves

Required Associated Types

The type returned by Self::remove() and Self::replace()

Required Methods

Insert an element at index

Remove the element at index (panicking if nonexistant)

Replace the element at index with another one, returning the old element

Push an element to the end of this vector

Create a new, empty vector, with given capacity

Remove all elements from the vector

Reserve space for addl additional elements

Convert an owned value to a borrowed T

Construct from the borrowed version of the type

These are useful to ensure serialization parity between borrowed and owned versions

Extract the inner borrowed variant if possible. Returns None if the data is owned.

This function behaves like &'_ self -> Self::SliceVariant<'a>, where 'a is the lifetime of this object’s borrowed data.

This function is similar to matching the Borrowed variant of ZeroVec or VarZeroVec, returning the inner borrowed type.

Implementors