5 个版本 (3 个重大变更)
0.4.0 | 2023 年 11 月 12 日 |
---|---|
0.3.1 | 2023 年 11 月 10 日 |
0.3.0 | 2023 年 11 月 10 日 |
0.2.0 | 2023 年 3 月 4 日 |
0.1.0 | 2023 年 3 月 1 日 |
1269 在 数据结构 中排名
每月下载量 2,405
用于 7 个 软件包(6 个直接使用)
94KB
2K SLoC
OrderedHashMap
一个保留插入顺序的 HashMap(和 Set)。
此软件包提供了一种尽可能减少不安全使用的 no_std 实现的有序哈希映射(及其对应的 Set)。使用 MIRI 对存在的不安全代码进行审计。
API 的目标是与标准库中的 HashMap/Set 匹配,并添加额外的 LinkedList 风格方法和有序迭代器。
更新日志
详细信息
此软件包由 hashbrown 驱动,利用已经经过良好验证的 HashMap 实现并添加了在映射中实现 LinkedList 所需的位。与 hashbrown HashMap 相比,OrderedHashMap 的额外内存占用在创建集合时为 2 个指针,每个元素为 3 个指针。指针源于 LinkedList,其中集合本身有一个指向头和尾的指针,每个节点有一个指向下一个和前一个节点的指针,并且映射中的键是指向值的指针。
功能
serde
- 启用 serde 序列化和反序列化
用法
use ordered_hash_map::OrderedHashMap;
let mut map: OrderedHashMap<_, _> = [(1, "one"), (2, "two")].into_iter().collect();
map.insert(3, "three");
assert_eq!(map.iter().next(), Some((&1, &"one")));
依赖关系
~2MB
~26K SLoC