moa_idalloc 0.1.4

id 分配工具箱:单调号 / 回收位图 / 世代槽位表
Documentation
//! id 分配工具箱
//!
//! 提供三种互补的 id 分配机制,按需求选用:
//!
//! | 类型 | 机制 | 用途 | 号的形态 |
//! |------|------|------|---------|
//! | [`monotonic::IdGen`] | 单调递增 `AtomicU64` | 全局对象身份(koid) | 稀疏大整数、**永不复用**、ABA 免疫、无锁 |
//! | [`dense::IdAllocator`] | 回收位图 | 小而密的可复用号(pid) | 最小空闲优先、自动增长、可复用 |
//! | [`table::IdTable`] | 世代槽位表 | 号↔对象表(handle) | 密集索引 + generation 防 ABA、`O(1)` |
//!
//! 选择要点:
//! - 只需要一个**永不重复的标识**(对外暴露、做比较或 map key)→ [`monotonic::IdGen`],
//!   机制最简、从根上免疫复用问题,64 位空间实际不可能耗尽。
//! - 需要**小而密、可读、可回收**的号(典型如 pid)→ [`dense::IdAllocator`]。
//! - 需要**按号存取对象**且担心裸号被缓存后复用指向错对象 → [`table::IdTable`], id 自带
//!   generation,旧号在查找时被拒。
#![no_std]

extern crate alloc;

pub mod dense;
pub mod monotonic;
pub mod table;