#pool #range #id

id-pool

使用范围池创建和回收整数ID

4个版本

0.2.2 2022年7月6日
0.2.1 2021年3月19日
0.2.0 2020年10月29日
0.1.0 2020年9月17日

#1283数据结构

Download history 72/week @ 2024-03-12 57/week @ 2024-03-19 157/week @ 2024-03-26 102/week @ 2024-04-02 52/week @ 2024-04-09 80/week @ 2024-04-16 69/week @ 2024-04-23 58/week @ 2024-04-30 32/week @ 2024-05-07 56/week @ 2024-05-14 14/week @ 2024-05-21 58/week @ 2024-05-28 76/week @ 2024-06-04 112/week @ 2024-06-11 97/week @ 2024-06-18 63/week @ 2024-06-25

358 每月下载
scalesocket 中使用

MIT 许可证

11KB
143

id-pool

使用范围池创建和回收整数ID。

// create a new id pool with an available range
let mut pool = IdPool::new_ranged(1..10);
// request ids from the pool
let id1 = pool.request_id()); // 1
let id2 = pool.request_id()); // 2
let id3 = pool.request_id()); // 3
// return arbitrary id back into the pool
pool.return_id(2)?;
// recycle the returned id during subsequent request
let id4 = pool.request_id()); // 2
let id5 = pool.request_id()); // 4

该包非常简洁,目前仅处理一种数值ID类型。这些可以是 usize(默认), u64, u32u16,使用适当的包功能进行选择。

主要导出结构 IdPool 可以使用自定义范围进行初始化,然后查询该范围内的新ID。在程序执行过程中,可以将ID返回到池中,以便在后续的ID请求调用中重复使用。


lib.rs:

使用范围池创建和回收整数ID。

该包非常简洁,目前仅处理一种数值ID类型。这些可以是 usize(默认), u64, u32u16,使用适当的包功能进行选择。

主要导出结构 IdPool 可以使用自定义范围进行初始化,然后查询该范围内的新ID。在程序执行过程中,可以将ID返回到池中,以便在后续的ID请求调用中重复使用。

依赖关系

~170KB