0.1.0 2020年7月29日

#9 in #holds

MIT/Apache

20KB
397 代码行

Vec-Array - 合并 Vec/Array 存储

此库提供了 VecArray<T>,一种类似数组的类型,它可以以固定大小的数组形式存储一定数量的值(目前固定为四个),实现无分配、快速访问。

如果存储的项目数量超过数组的容量,它将自动转换为使用 Vec

当项目被移除且总数低于数组的容量时,它将自动转换回使用堆分配的数组进行存储,并且释放 Vec 的内存。

固定存储容量

目前,固定大小的数组存储四个项目,这应该在内存占用(此类型的总大小取决于此)和减少分配之间取得良好的平衡。

要更改此大小,目前遗憾的是您必须克隆此仓库并直接修改代码。

这无法避免,直到 Rust 中的泛型常量出现。

支持 Deref

VecArray<T> 可解引用为 &[T]&mut [T]。实现了常见的 Vec 方法。在大多数情况下,VecArray<T>Vec<T> 的直接替换。

支持迭代器

支持大多数常用/有用的迭代器,包括 iter()iter_mut()into_iter()。特别是,into_iter() 允许你像处理 Vec 一样清空 VecArray 的元素,这是普通数组无法做到的。

no-std 支持

使用 no_std 功能来构建 no-std

无运行时依赖

功能