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