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が含まれているため、この例はインラインでも問題なく実行できます。