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を内包しているので、オンラインでこの例を実行することができます。