tinyvec

有时,需要一些像 Vec 一样能够调整大小的特性,但无需进行堆分配。tinyvec 提供了以下特性:由数组或 slice 支持的矢量,该矢量支持进行静态分配或堆分配;用于跟踪使用的元素数量,如果元素使用量超过了分配额度,则会出现 panic。

use tinyvec::{array_vec, ArrayVec};

fn main() {
    let mut numbers: ArrayVec<[u32; 5]> = array_vec!(42, 66);
    println!("{numbers:?}");
    numbers.push(7);
    println!("{numbers:?}");
    numbers.remove(1);
    println!("{numbers:?}");
}
  • 根据 tinyvec要求,元素类型需实现初始化 Default
  • Rust Playground 中包含 tinyvec,因此本示例将以内嵌方式正常运行。