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
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));