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