tinyvec
Иногда нужно что-то, что можно изменять по размеру, как Vec, но без выделения памяти в куче. tinyvec предоставляет это: вектор, основанный на массиве или срезе (которые могут быть выделены статически или на стеке), который отслеживает, сколько элементов используется, и вызывает панику, если вы пытаетесь использовать больше, чем выделено.
// Copyright 2023 Google LLC
// SPDX-License-Identifier: Apache-2.0
use tinyvec::{ArrayVec, array_vec};
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, поэтому этот пример будет работать прямо в браузере.