7个版本
0.3.2 | 2021年8月24日 |
---|---|
0.3.1 | 2021年5月27日 |
0.2.2 | 2021年3月6日 |
0.1.0 | 2021年3月3日 |
#1980 在 数据结构
20,834 每月下载量
在 30 个 包(9个直接使用)中使用
93KB
2.5K SLoC
RiteLinked — 用户可控顺序的键值对容器,类似于HashMap
RiteLinked 提供了更新版本的 LinkedHashMap
和 LinkedHashSet
。您可以在 std
或 no_std
环境中轻松使用它。
支持一些实用的功能组合,帮助您更好地将其嵌入现有代码:serde
、inline-more
等。特别是,它默认使用 griddle
,如果您有大量数据,它可以有效地帮助您减少可能的尾部延迟。(当然,也可以使用 hashbrown
)
使用方法
将 ritelinked
添加到 Cargo.toml
ritelinked = "x.y.z"
编写一些这样的代码
let mut lru_cache = LinkedHashMap::new();
let key = "key".to_owned();
let _cached_val = lru_cache
.raw_entry_mut()
.from_key(&key)
.or_insert_with(|| (key.clone(), 42));
基准测试
ritelinked time: [165.09 ns 165.40 ns 165.79 ns]
Found 12 outliers among 100 measurements (12.00%)
5 (5.00%) high mild
7 (7.00%) high severe
hashlink time: [168.11 ns 168.48 ns 168.96 ns]
Found 13 outliers among 100 measurements (13.00%)
2 (2.00%) high mild
11 (11.00%) high severe
linked-hash-map time: [370.98 ns 382.59 ns 397.44 ns]
Found 7 outliers among 100 measurements (7.00%)
7 (7.00%) high mild
致谢
这是流行的包 hashlink 的分支,但已对代码进行了更多调整和改进。
许可证
此库的许可证与 hashlink 相同,它采用以下任一许可证:
- MIT 许可证 LICENSE-MIT 或 http://opensource.org/licenses/MIT
- Apache 许可证 2.0 LICENSE-APACHE 或 https://opensource.org/licenses/Apache-2.0
任选其一。
依赖项
~0.8–1.2MB
~19K SLoC