4个版本

使用旧的Rust 2015

0.1.3 2018年10月28日
0.1.2 2018年3月9日
0.1.1 2018年3月9日
0.1.0 2018年3月9日

#15 in #slotmap

MIT许可证

16KB
290

已废弃:使用 slotmap.

槽映射:具有持久索引的数组存储

Vec<T> 类似集合,具有稳定的索引。底层数组的索引通过在索引类型中增加版本标记来重复使用。

SlotMapIndex 类型由一个用于存储底层数组索引的 u32 和一个用于存储版本的 u32 组成。删除和插入的次数超过 u32 的最大值将导致溢出和索引冲突错误。

示例

# use slotmapvec::*;
let mut map = SlotMapVec::new();

map.insert(123213);
let idx = map.insert(34234);
map.insert(654654);

map.remove(idx);
let idx2 = map.insert(999);
assert_eq!(map.get(idx), None);
assert_eq!(map.get(idx2), Some(&999));

lib.rs:

槽映射:具有持久索引的数组存储

Vec<T> 类似集合,具有稳定的索引。底层数组的索引通过在索引类型中增加版本标记来重复使用。

SlotMapIndex 类型由一个用于存储底层数组索引的 u32 和一个用于存储版本的 u32 组成。删除和插入的次数超过 u32 的最大值将导致溢出和索引冲突错误。

示例

let mut map = SlotMapVec::new();

map.insert(123213);
let idx = map.insert(34234);
map.insert(654654);

map.remove(idx);
let idx2 = map.insert(999);

assert_eq!(map.get(idx), None);
assert_eq!(map.get(idx2), Some(&999));

无运行时依赖