[][src]Module lru_disk_cache::lru_cache

A cache that holds a limited number of key-value pairs. When the capacity of the cache is exceeded, the least-recently-used (where "used" means a look-up or putting the pair into the cache) pair is automatically removed.

Examples

This example is not tested
use lru_cache::LruCache;

let mut cache = LruCache::new(2);

cache.insert(1, 10);
cache.insert(2, 20);
cache.insert(3, 30);
assert!(cache.get_mut(&1).is_none());
assert_eq!(*cache.get_mut(&2).unwrap(), 20);
assert_eq!(*cache.get_mut(&3).unwrap(), 30);

cache.insert(2, 22);
assert_eq!(*cache.get_mut(&2).unwrap(), 22);

cache.insert(6, 60);
assert!(cache.get_mut(&3).is_none());

cache.set_capacity(1);
assert!(cache.get_mut(&2).is_none());

The cache can also be limited by an arbitrary metric calculated from its key-value pairs, see LruCache::with_meter for more information. If the heapsize feature is enabled, this crate provides one such alternate metric—HeapSize. Custom metrics can be written by implementing the Meter trait.

Structs

Count

Size limit based on a simple count of cache items.

IntoIter

An iterator over a cache's key-value pairs in least- to most-recently-used order.

Iter

An iterator over a cache's key-value pairs in least- to most-recently-used order.

IterMut

An iterator over a cache's key-value pairs in least- to most-recently-used order with mutable references to the values.

LruCache

An LRU cache.

Traits

CountableMeter

A trait to allow the default Count measurement to not store an extraneous counter.

CountableMeterWithMeasure
Meter

A trait for measuring the size of a cache entry.