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日

1630 in 数据结构

Download history • Rust 包仓库 1/week @ 2024-04-08 • Rust 包仓库 110/week @ 2024-04-22 • Rust 包仓库 22/week @ 2024-05-27 • Rust 包仓库 8/week @ 2024-06-03 • Rust 包仓库 20/week @ 2024-06-10 • Rust 包仓库 2/week @ 2024-06-17 • Rust 包仓库 70/week @ 2024-07-01 • Rust 包仓库 23/week @ 2024-07-22 • Rust 包仓库

93 monthly downloads

MIT许可协议

5KB

WrappedSlab Tests

同时在crates.io上可用。

非常简单的Rust库,当您想要比Slab的usize键更强的类型保证时很有用。生成接受TKey而不是usizeTSlab(Slab<T>)。同样还生成了TVacantEntry(VacantEntry<T>)。如果所有键都将usize更改为TKey,则应将其用作Slab<T>的替换。

示例

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
~37K SLoC