Expand description
Thread safe cache developed using lru crate as its core.
Supports LRU, positive and negative TTLs and miss handler function.
It is intended to be used using the function retrieve_or_compute
, which will return the value if it is in the cache,
or compute it using the miss_handler function if it is not.
§Example
extern crate gs_rust_cache;
use gs_rust_cache::Cache;
use std::any::Any;
use std::time::Duration;
fn miss_handler(key: &i32, data: &mut i32, adhoc_code: &mut u8, _: &[&dyn Any]) -> bool {
// Your Code Here
*data = 123;
*adhoc_code = 200;
true
}
fn main() {
let mut cache = Cache::new(
3,
miss_handler,
Duration::from_millis(200),
Duration::from_millis(100),
);
let key = 456;
let value = cache.retrieve_or_compute(&key); // first one is calculated
let value_1 = cache.retrieve_or_compute(&key); // afterwards it is retrieved
assert_eq!(value, value_1);
}