Crates.io | clock_cache |
lib.rs | clock_cache |
version | 0.1.0 |
source | src |
created_at | 2017-01-03 22:18:07.449428 |
updated_at | 2017-01-03 22:18:07.449428 |
description | A CLOCK cache implementation |
homepage | https://github.com/jeromefroe/clock_cache |
repository | https://github.com/jeromefroe/clock_cache.git |
max_upload_size | |
id | 7906 |
size | 14,602 |
An implemenation of a CLOCK cache as first described in [A Paging Experiment with the Multics System] (http://multicians.org/paging-experiment.pdf).
Below is a simple example of how to instantiate a CLOCK cache.
extern crate clock_cache;
use clock_cache::ClockCache;
fn main() {
let mut cache = ClockCache::new(2);
cache.put("apple", "red");
cache.put("banana", "yellow");
assert_eq!(*cache.get(&"apple").unwrap(), "red");
assert_eq!(*cache.get(&"banana").unwrap(), "yellow");
assert!(cache.get(&"pear").is_none());
cache.put("pear", "green");
assert_eq!(*cache.get(&"pear").unwrap(), "green");
assert_eq!(*cache.get(&"banana").unwrap(), "yellow");
assert!(cache.get(&"apple").is_none());
}