1 个不稳定版本
0.1.0 | 2021 年 4 月 14 日 |
---|
#338 在 缓存
7KB
104 行
CacheMap
CacheMap 是一个用于并发缓存值的抽象数据类型。
cache
函数将在映射中查找值,或者使用提供的函数生成和存储一个新的值
示例
use cachemap::CacheMap;
let m = CacheMap::new();
let fst = m.cache("key", || 5u32).as_ref();
let snd = m.cache("key", || 7u32).as_ref();
assert_eq!(*fst, *snd);
assert_eq!(*fst, 5u32);
特性 🌞
- 可以并发缓存值(使用
&CacheMap<K,V>
而不是&mut CacheMap<K,V>
) - 返回的引用使用映射的生命周期,因此客户端可以避免使用智能指针
- 客户端可以选择获取
Arc<V>
指针,以防值需要超出映射的生命周期 - 值可以作为
Arc<V>
添加,允许使用无大小值,并重用来自其他地方的Arc<V>
不足之处 💧
具有糟糕策略的缓存就是内存泄露的另一种说法
此映射仅提供一种从缓存中删除内容的方法:丢弃整个映射。
依赖关系
~210KB