# lfu-cache
A rust implementation of a [Least Frequently Used (LFU)](https://en.wikipedia.org/wiki/Least_frequently_used) cache.
It supports insertions and retrievals, both of which are performed in constant time. In the event of tie between multiple
least frequently used entries, the least *recently* used entry is evicted.
### Usage:
```
extern crate lfu;
use lfu::LFUCache;
fn main() {
let mut lfu = LFUCache::new(2).unwrap(); //initialize an lfu with a maximum capacity of 2 entries
lfu.set(2, 2);
lfu.set(3, 3);
lfu.set(3, 30);
//We're at fully capacity. First purge (2,2) since it's the least-frequently-used entry, then insert the current entry
lfu.set(4,4);
assert_eq!(lfu.get(&2), None);
assert_eq!(lfu.get(&3), Some(&30));
}
```
### Install
https://crates.io/crates/lfu