3个稳定版本
2.0.0 | 2023年5月11日 |
---|---|
1.0.1 | 2019年9月18日 |
#44 in 缓存
23,763 每月下载量
用于 55 个crates (3 直接)
67KB
1K SLoC
associative_cache
一个通用的、固定大小的关联缓存数据结构,将K
键映射到V
值。
容量
缓存具有由类型参数C
和Capacity
trait控制的恒定、固定大小的容量。缓存条目的内存一次分配并永不调整大小。
关联性
通过类型参数I
和Indices
trait,缓存可以配置为直接映射、双向关联、四向关联等。
替换策略
可以通过类型参数R
和Replacement
trait配置缓存以替换最近最少使用(LRU)条目或随机条目。
示例
use associative_cache::*;
// A two-way associative cache with random replacement mapping
// `String`s to `usize`s.
let cache = AssociativeCache::<
String,
usize,
Capacity512,
HashTwoWay,
RandomReplacement
>::default();
// A four-way associative cache with random replacement mapping
// `*mut usize`s to `Vec<u8>`s.
let cache = AssociativeCache::<
*mut usize,
Vec<u8>,
Capacity32,
PointerFourWay,
RandomReplacement
>::default();
// An eight-way associative, least recently used (LRU) cache mapping
// `std::path::PathBuf`s to `std::fs::File`s.
let cache = AssociativeCache::<
std::path::PathBuf,
WithLruTimestamp<std::fs::File>,
Capacity128,
HashEightWay,
LruReplacement,
>::default();
依赖项
~72KB