[−][src]Crate clru
Another LRU cache implementation in rust. The cache is backed by a HashMap and thus offers a O(1) time complexity for common operations:
get
/get_mut
put
/pop
peek
/peek_mut
Example
use clru::CLruCache; let mut cache = CLruCache::new(2); cache.put("apple".to_string(), 3); cache.put("banana".to_string(), 2); assert_eq!(cache.get("apple"), Some(&3)); assert_eq!(cache.get("banana"), Some(&2)); assert!(cache.get("pear").is_none()); assert_eq!(cache.put("banana".to_string(), 4), Some(2)); assert_eq!(cache.put("pear".to_string(), 5), None); assert_eq!(cache.get("pear"), Some(&5)); assert_eq!(cache.get("banana"), Some(&4)); assert!(cache.get("apple").is_none()); { let v = cache.get_mut("banana").unwrap(); *v = 6; } assert_eq!(cache.get("banana"), Some(&6));
Structs
CLruCache | An LRU cache with constant time operations. |
CLruCacheIter | An iterator over the entries of a |
CLruCacheIterMut | An iterator over mutables entries of a |