Crate freqache[−][src]
A weighted, thread-safe, futures-aware least-frequently-used cache.
LFUCache
does not provide a default eviction policy, but a callback and traversal method
which allow the developer to implement their own.
Example:
use freqache::LFUCache; #[derive(Clone)] struct Entry; impl freqache::Entry for Entry { fn weight(&self) -> u64 { 1 } } struct Policy; #[async_trait] impl freqache::Policy<String, Entry> for Policy { fn can_evict(&self, value: &Entry) -> bool { true } async fn evict(&self, key: String, value: &Entry) { // maybe backup the entry contents here } } let mut cache = LFUCache::new(1, Policy); cache.insert("key".to_string(), Entry); if cache.is_full() { block_on(cache.evict()); }
Structs
LFUCache | A weighted, thread-safe, futures-aware least-frequently-used cache |
Traits
Entry | An |
Policy | A cache eviction policy. |