Crate lru [] [src]

An implementation of a LRU cache. The cache supports get, put, and remove operations, all of which are O(1). This crate was heavily influenced by the LRU Cache implementation in an earlier version of Rust's std::collections crate.

Example

extern crate lru;

use lru::LruCache;

fn main() {
        let mut cache = LruCache::new(2);
        cache.put("apple".to_string(), "red".to_string());
        cache.put("banana".to_string(), "yellow".to_string());

        assert_eq!(*cache.get(&"apple".to_string()).unwrap(), "red".to_string());
        assert_eq!(*cache.get(&"banana".to_string()).unwrap(), "yellow".to_string());
        assert!(cache.get(&"pear".to_string()).is_none());

        cache.put("pear".to_string(), "green".to_string());

        assert_eq!(*cache.get(&"pear".to_string()).unwrap(), "green".to_string());
        assert_eq!(*cache.get(&"banana".to_string()).unwrap(), "yellow".to_string());
        assert!(cache.get(&"apple".to_string()).is_none());
}

Structs

LruCache

An LRU Cache