3 个版本
0.1.2 | 2024 年 1 月 23 日 |
---|---|
0.1.1 | 2023 年 8 月 30 日 |
0.1.0 | 2023 年 8 月 29 日 |
#723 在 数据结构
在 2 crates 中使用
8KB
121 行
idbag
一个初始包含(所有)u32
值,可以分配并返回给集合的包。
lib.rs
:
IdBag
在概念上是一个初始包含(所有)u32
值的包。应用程序可以请求分配一个包含从包中取出的 u32
值的 Id
。一旦 Id 被丢弃,其 u32
将自动返回到包中,并可供再次分配。
Id
对象是可哈希的,并且透明地映射到其内部的 u32
。它们还可以
简介示例
use idbag::IdBag;
// Create a new id heap.
let idbag = IdBag::new();
// Allocate an id; first id will have a value of 1.
let id = idbag.alloc();
assert_eq!(id.val(), 1);
// The id's drop handler returns 1 to the idbag
drop(id);
// Allocate another id; next id will have a value of 2.
let id = idbag.alloc();
assert_eq!(id.val(), 2);
// The id's drop handler returns 2 to the idbag
drop(id);
依赖项
~1.9–7MB
~37K SLoC