Expand description
§Least Recently Used (LRU) Cache
Implementation of a Least Recently Used caching algorithm in a container which may be limited by size or time, ordered by most recently seen.
§Examples
extern crate lru_time_cache;
use lru_time_cache::LruCache;
// Construct an `LruCache` of `<u8, String>`s, limited by key count
let max_count = 10;
let _lru_cache = LruCache::<u8, String>::with_capacity(max_count);
// Construct an `LruCache` of `<String, i64>`s, limited by expiry time
let time_to_live = ::std::time::Duration::from_millis(100);
let _lru_cache = LruCache::<String, i64>::with_expiry_duration(time_to_live);
// Construct an `LruCache` of `<u64, Vec<u8>>`s, limited by key count and expiry time
let _lru_cache = LruCache::<u64, Vec<u8>>::with_expiry_duration_and_capacity(time_to_live,
max_count);
Structs§
- An iterator over an
LruCache
’s entries that updates the timestamps as values are traversed. Values are produced in the most recently used order. - Implementation of LRU cache.
- Much like
Iter
except will produce expired entries too whereIter
silently drops them. - An occupied Entry.
- An iterator over an
LruCache
’s entries that does not modify the timestamp. - A vacant Entry.
Enums§
- A view into a single entry in an LRU cache, which may either be vacant or occupied.
- Entry produced by
NotifyIter
that might be still valid or expired.