1个不稳定版本
0.1.3 | 2023年7月2日 |
---|---|
0.1.2 |
|
0.1.1 |
|
0.1.0 |
|
在#heterogeneous中排名第33
14KB
293 行
TraitStack
使用两个Vec存储trait对象和vtable。
当元素不需要重新排序时,提供高效的异构列表。
与Vec<Box<dyn Trait>>
相比
Vec<Box<dyn Trait>>
对每个元素进行分配。插入大量对象可能会因为分配而影响性能。
TraitStack
将栈对象放入其内部向量。这使得通过索引移动元素变得不可能,并且只能用作栈。但在插入时非常快速。
请参阅图以了解详细结构。
图
no_std
不支持。
示例
let mut stack = TraitStack::<dyn Debug>::new();
stack.push("str");
stack.push(1);
stack.push(28342.2);
println!("{:?}", stack); // Print ["str", 1, 28342.2]