只是,真的是你所需要的最小 Vec。非常小。
#![forbid(unsafe_code)]提供的类型如下:
ArrayVec 是一种基于数组的 vec 型数据结构。当溢出时会引发异常。SliceVec 类似,但使用 &mut [T] 作为数据支持。TinyVec(alloc 特性)是一个枚举,可以是 Inline(ArrayVec) 或 Heap(Vec)。如果 TinyVec 是 Inline 且数组溢出,则会自动转换为 Heap 并继续执行原有操作。如果您不想使用 tinyvec,还有一些其他库可以替代!
主要区别在于,这两个 crate 都使用了 unsafe 代码。这主要是为了让它们摆脱 tinyvec 为元素设定的 Default 限制。smallvec 和 arrayvec crate 通常是正确的,但偶尔会出现导致 UB 的错误。使用 tinyvec 时,任何未捕获的错误都无法导致 UB,因为整个 crate 都是安全代码。如果您希望绝对地避免 UB,请使用 tinyvec。
暂无开放 Issues,或尚未同步最近议题。