use cachekit::policy::arc::ArcCore;
use cachekit::traits::Cache;
fn main() {
let mut cache: ArcCore<&str, &str> = ArcCore::new(2);
cache.insert("a", "alpha");
cache.insert("b", "beta");
println!(
"after inserts: T1={}, T2={}",
cache.t1_len(),
cache.t2_len()
);
cache.get(&"a");
println!("after get(a): T1={}, T2={}", cache.t1_len(), cache.t2_len());
let mut ghost_demo: ArcCore<&str, &str> = ArcCore::new(2);
ghost_demo.insert("a", "alpha");
ghost_demo.insert("b", "beta");
ghost_demo.insert("c", "gamma");
println!("ghost contains a? {}", ghost_demo.contains(&"a"));
println!("ghost B1 entries: {}", ghost_demo.b1_len());
println!("ghost B2 entries: {}", ghost_demo.b2_len());
println!("adaptation p: {}", ghost_demo.p_value());
}