use std::time::Duration;
use cachet::Cache;
use tick::Clock;
#[tokio::main]
async fn main() {
let clock = Clock::new_tokio();
let cache: Cache<String, String> = Cache::builder(clock).memory().ttl(Duration::from_secs(60)).build();
let key = "user:1".to_string();
cache.insert(key.clone(), "Alice".to_string()).await.expect("insert failed");
let value = cache.get(&key).await.expect("get failed");
match value {
Some(e) => println!("get({key}): {}", e.value()),
None => println!("get({key}): not found"),
}
cache.invalidate(&key).await.expect("invalidate failed");
let value = cache.get(&key).await.expect("get failed");
match value {
Some(e) => println!("after invalidate: {}", e.value()),
None => println!("after invalidate: not found"),
}
}