tinyvec
時にはVec
のようにリサイズできる領域をヒープを使わずに確保したいと思うことがあります。tinyvec
は静的に確保、またはスタック上に確保した配列またはスライスを割当領域とするベクタを提供します。この実装では、いくつの要素が使われているかが管理され、確保された以上に使おうとするとパニックします。
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
を内包しているので、オンラインでこの例を実行することができます。