use std::time::Duration;
use stretto::Cache;
fn main() {
let c = Cache::new(12960, 1e6 as i64).unwrap();
c.insert("key1".to_string(), "value1".to_string(), 1);
c.insert_with_ttl(
"key2".to_string(),
"value2".to_string(),
1,
Duration::from_secs(3),
);
c.wait().unwrap();
let key1 = "key1".to_string();
let v = c.get(&key1).unwrap();
assert_eq!(v.value(), &"value1");
v.release();
{
let mut v = c.get_mut(&key1).unwrap();
v.write("value3".to_string());
assert_eq!(v.value(), &"value3");
}
let v = c.get_mut(&key1).unwrap();
v.write_once("value4".to_string());
let v = c.get(&key1).unwrap();
assert_eq!(v.value(), &"value4");
v.release();
c.clear().unwrap();
c.wait().unwrap();
assert!(c.get(&key1).is_none());
}