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 where Iter 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.