dynstack

Crates.iodynstack
lib.rsdynstack
version0.4.0
sourcesrc
created_at2018-11-06 08:50:52.351406
updated_at2020-03-24 03:57:36.295445
descriptionA stack for trait objects that minimizes allocations
homepage
repositoryhttps://github.com/archshift/dynstack
max_upload_size
id94988
size32,594
Gui Andrade (archshift)

documentation

README

dynstack

A stack for trait objects that minimizes allocations

COMPATIBILITY NOTE: dynstack relies on an underspecified fat pointer representation. Though it isn't expected to change in the foreseeable future, this crate expects Rust 1.34's representation.

Usage

dynstack can mostly replace anywhere you'd use a stack, or a vector that doesn't require removal from its center.

let mut stack = DynStack::<dyn Debug>::new();
dyn_push!(stack, "hello, world!");
dyn_push!(stack, 0usize);
dyn_push!(stack, [1, 2, 3, 4, 5, 6]);

for item in stack.iter() {
    println!("{:?}", item);
}

// prints:
//  "hello, world!"
//  0
//  [1, 2, 3, 4, 5, 6]
Commit count: 40

cargo fmt