Expand description
§Example
The following example is obviously overly simplistic, but gives an idea of how one might use this library. In a real-world application, one might have the generator function call an over-the-network service to get some session key.
extern crate timed_cache;
use timed_cache::TimedCache;
use std::time::Duration;
use std::sync::Mutex;
struct TestService(usize);
impl TestService {
fn next(&mut self) -> usize {
let n = self.0;
self.0 += 1;
n
}
}
let time_to_keep = Duration::from_millis(1);
let mut cache = TimedCache::<String, usize>::with_time_to_keep(time_to_keep);
let service = Mutex::new(TestService(0));
let generate_value = || service.lock().unwrap().next();
(0..1000).for_each(|_| {
// this generator method will
let value = cache.get(&"value".to_owned(), generate_value);
println!("{}", value);
});
Structs§
- Timed
Cache - A collection which stores a value for a set amount of time.