Trait MutableZeroVecLike

trait MutableZeroVecLike<'a, T: ?Sized>: ZeroVecLike<T>

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

Associated Types

type OwnedType

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

Required Methods

fn zvl_insert(self: &mut Self, index: usize, value: &T)

Insert an element at index

fn zvl_remove(self: &mut Self, index: usize) -> <Self as >::OwnedType

Remove the element at index (panicking if nonexistant)

fn zvl_replace(self: &mut Self, index: usize, value: &T) -> <Self as >::OwnedType

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

fn zvl_push(self: &mut Self, value: &T)

Push an element to the end of this vector

fn zvl_with_capacity(cap: usize) -> Self

Create a new, empty vector, with given capacity

fn zvl_clear(self: &mut Self)

Remove all elements from the vector

fn zvl_reserve(self: &mut Self, addl: usize)

Reserve space for addl additional elements

fn zvl_permute(self: &mut Self, permutation: &mut [usize])

Applies the permutation such that before.zvl_get(permutation[i]) == after.zvl_get(i).

Panics

If permutation is not a valid permutation of length zvl_len().

fn owned_as_t(o: &<Self as >::OwnedType) -> &T

Convert an owned value to a borrowed T

fn zvl_from_borrowed(b: &'a <Self as >::SliceVariant) -> Self

Construct from the borrowed version of the type

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

fn zvl_as_borrowed_inner(self: &Self) -> Option<&'a <Self as >::SliceVariant>

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