Expand description

This module contains additional utility types for working with ZeroVec and VarZeroVec. See their docs for more details on the general purpose of these types.

ZeroSlice and VarZeroSlice provide slice-like versions of the vector types for use behind references and in custom ULE types.

VarZeroVecOwned is a special owned/mutable version of VarZeroVec, allowing direct manipulation of the backing buffer.

Re-exports

pub use crate::zerovec::ZeroSlice;
pub use crate::zerovec::ZeroVec;
pub use crate::varzerovec::VarZeroSlice;
pub use crate::varzerovec::VarZeroVec;

Structs

A zero-copy “slice” that efficiently represents [usize].

The fully-owned variant of FlexZeroVec. Contains all mutation methods.

This is a VarZeroVecFormat that stores u16s in the index array. Will have a smaller data size, but it’s more likely for larger arrays to be unrepresentable (and error on construction)

This is a VarZeroVecFormat that stores u32s in the index array. Will have a larger data size, but will support large arrays without problems.

A fully-owned VarZeroVec. This type has no lifetime but has the same internal buffer representation of VarZeroVec, making it cheaply convertible to VarZeroVec and VarZeroSlice.

Enums

A zero-copy data structure that efficiently stores integer values.

Traits

This trait allows switching between different possible internal representations of VarZeroVec.