#stack #traits #objects #allocations #replace #pointers #minimizes

无需 std dynstack

用于 trait 对象的堆栈,最小化分配

6 个版本 (3 个重大更新)

0.4.0 2020年3月24日
0.3.0 2019年4月24日
0.2.1 2019年4月24日
0.2.0 2018年12月16日
0.1.0 2018年11月6日

Rust 模式 中排名 #1466

MIT 许可证

26KB
590

dynstack

用于 trait 对象的堆栈,最小化分配

兼容性说明: dynstack 依赖于未充分指定的胖指针表示形式。虽然预计在未来可预见的时期内不会改变,但此 crate 期望 Rust 1.34 的表示形式。

用法

dynstack 可以在很大程度上替换任何使用堆栈或不需要从其中心删除的向量的地方。

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]

lib.rs:

dynstack 可以在很大程度上替换任何使用堆栈或不需要从其中心删除的向量的地方。

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]

无运行时依赖