3个不稳定版本
0.2.0 | 2022年12月21日 |
---|---|
0.1.1 | 2022年12月19日 |
0.1.0 | 2022年12月19日 |
#1681 in 数据结构
14KB
273 行
提供一个简单的Arena
集合,将EntryId
映射到某些类型的值。
当你插入一个项目时,你会得到相应的ID,只要这个项目留在竞技场中,这个ID就不会改变。然后你可以通过ID检索或删除一个项目。这对于构建图形数据结构(树、链表或更灵活的图)很有用 - 例如,你可以通过它们的ID来描述节点之间的关系。
由于由简单的Vec
支持,插入和按索引访问效率很高
替代方案
有很多crate实现了竞技场。这个crate的重点是简单 - 没有花哨的功能。
如果你希望你的ID即使在删除其对应项目后也能保留下来,而不引起混淆,请考虑使用generational-arena。使用该crate,ID还会跟踪槽位的“生成”。删除一个项目,然后添加一个新的项目将产生一个具有不同生成的ID,即使槽位可能相同。(与这个crate不同,那里的ID将被重用)。
依赖项
~170KB