6个版本 (破坏性更改)
0.4.0 | 2022年1月5日 |
---|---|
0.3.0 | 2021年10月10日 |
0.2.0 | 2021年9月25日 |
0.1.1 | 2021年8月16日 |
0.0.1 | 2021年8月16日 |
#933 在 数据结构 中
每月下载量 32
用于 4 个crate(通过 pulz-ecs)
70KB
1K SLoC
pulz-arena

一个受 generational-arena 启发的 代际内存分配器,具有紧凑的代际索引。
当你将一个值插入到内存分配器中时,你会得到一个索引指针。然后你可以使用这个索引指针来访问提供的值。
示例
use pulz_arena::{Arena,Index};
let mut arena = Arena::new();
// insert some elements and remember the returned index
let a = arena.insert("foo");
let b = arena.insert("bar");
// access inserted elements by returned index
assert_eq!("bar", arena[b]);
// there are also the "checked" versions `get` and `get_mut` that returns Option.
assert_eq!(Some(&"foo"), arena.get(a));
// items can be removed efficiently
assert_eq!(Some("foo"), arena.remove(a));
assert!(!arena.contains(a));
no_std
此crate也应能够在不使用 std
的情况下运行。无需额外配置。
许可协议
此仓库受以下之一许可:
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
- Apache 许可证2.0版本 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
由你选择。
除非你明确表示,否则任何有意提交以包含在你工作中的贡献,根据Apache-2.0许可证定义,应如上所述双重许可,不附加任何额外条款或条件。