tinyvec

A veces, se necesita algo que se pueda cambiar de tamaño, como Vec, pero sin asignación de heap. tinyvec ofrece un vector respaldado por un array o slice, que se podría asignar estáticamente o en la stack, y que hace un seguimiento de cuántos elementos se usan, entrando en panic si intentas utilizar más elementos de los asignados.

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 requiere que el tipo de elemento implemente Default para la inicialización.
  • El playground de Rust incluye tinyvec, por lo que este ejemplo se ejecutará bien aunque esté insertado.