54 个版本
使用旧 Rust 2015
0.12.4 | 2024 年 7 月 31 日 |
---|---|
0.12.3 | 2024 年 2 月 24 日 |
0.12.2 | 2024 年 1 月 28 日 |
0.12.1 | 2023 年 11 月 22 日 |
0.1.1 | 2016 年 12 月 31 日 |
#2 在 缓存
4,389,132 每月下载量
在 2,667 个 Crates 中使用 (346 个直接使用)
90KB
1.5K SLoC
LRU 缓存
LRU 缓存的实现。缓存支持 put
、get
、get_mut
和 pop
操作,所有操作均为 O(1)。此crate受到了 Rust std::collections crate 早期版本中 LRU 缓存实现的强烈影响。
此crate的最小支持Rust版本为1.64.0。
示例
以下是一个如何实例化和使用LRU缓存的简单示例。
extern crate lru;
use lru::LruCache;
use std::num::NonZeroUsize;
fn main() {
let mut cache = LruCache::new(NonZeroUsize::new(2).unwrap());
cache.put("apple", 3);
cache.put("banana", 2);
assert_eq!(*cache.get(&"apple").unwrap(), 3);
assert_eq!(*cache.get(&"banana").unwrap(), 2);
assert!(cache.get(&"pear").is_none());
assert_eq!(cache.put("banana", 4), Some(2));
assert_eq!(cache.put("pear", 5), None);
assert_eq!(*cache.get(&"pear").unwrap(), 5);
assert_eq!(*cache.get(&"banana").unwrap(), 4);
assert!(cache.get(&"apple").is_none());
{
let v = cache.get_mut(&"banana").unwrap();
*v = 6;
}
assert_eq!(*cache.get(&"banana").unwrap(), 6);
}
依赖项
~2MB
~25K SLoC