5个版本
0.2.2 | 2023年7月25日 |
---|---|
0.2.1 | 2023年7月25日 |
0.2.0 | 2023年7月24日 |
0.1.1 | 2023年7月19日 |
0.1.0 | 2023年7月19日 |
#46 in #slab
34次每月下载
用于 wrapped_slab
13KB
209 行
WrappedSlab
非常简单的Rust库,当您希望比Slab的usize
键提供更强的类型保证时很有用。生成接受TKey
而不是usize
的TSlab(Slab<T>)
。同样,还会生成TVacantEntry(VacantEntry<T>)
。这应该是一个Slab<T>
的即插即用替换,前提是将所有键从usize
更改为TKey
。
示例
use wrapped_slab::WrappedSlab;
#[derive(WrappedSlab)]
struct TestUnitStruct(String);
fn main() {
let mut slab = TestUnitStructSlab::default();
let key: TestUnitStructKey = slab.insert(TestUnitStruct("testing".into()));
let val: Option<&TestUnitStruct> = slab.get(key);
let next_entry: TestUnitStructVacantEntry = slab.vacant_entry();
let next_key: TestUnitStructKey = next_entry.key();
let next_entry_ref: &mut TestUnitStruct = next_entry.insert(TestUnitStruct(format!("{next_key:?}")));
// See wrapped_slab/tests/ for more examples
}
依赖关系
~1.5MB
~36K SLoC