3 个版本

0.1.2 2024 年 1 月 23 日
0.1.1 2023 年 8 月 30 日
0.1.0 2023 年 8 月 29 日

#723数据结构


2 crates 中使用

0BSD 许可

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