Key-Value based in-memory cache library which supports Custom Expiration Policies with standard HashMap, HashSet interface.
use std::thread::sleep;
use std::time::Duration;
use endorphin::policy::TTLPolicy;
use endorphin::HashMap;
fn main() {
let mut cache = HashMap::new(TTLPolicy::new());
cache.insert("Still", "Alive", Duration::from_secs(3));
cache.insert("Gonna", "Die", Duration::from_secs(1));
sleep(Duration::from_secs(1));
assert_eq!(cache.get(&"Still"), Some(&"Alive"));
assert_eq!(cache.get(&"Gonna"), None);
}Currently, we are providing four pre-defined policies.
LazyFixedTTLPolicyuses Lazy Expiration as other cache crates do, it expires items when you access entry after its TTL.TTLPolicyuses Active Expiration which expires even you don't access to expired entries.TTIPolicyuses Active Expiration which expires even you don't access to expired entries.MixedPolicyis mixed policy of TTL and TTI