A fast and flexible LRU map

Documentation

This repository contains a fast and flexible LRU map.

Examples

```rust use schnellru::{LruMap, ByLength}; let mut map = LruMap::new(ByLength::new(3));

// Insert three elements. map.insert(1, "one"); map.insert(2, "two"); map.insert(3, "three"); assert_eq!(map.len(), 3);

// Access the middle one. assert_eq!(*map.get(&1).unwrap(), "one");

// Insert a fourth element. // This will automatically pop the least recently accessed one. map.insert(4, "four");

// Still the same number of elements. assert_eq!(map.len(), 3);

// And this is the one which was removed. assert!(map.peek(&2).is_none()); ```

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.