thread-safe-cache

Features

Todo

Usage

``` use threadsafecache::*; use std::thread; use std::thread::sleep; use std::time::Duration; fn main() { let cacheinit: ThreadSafeCache = ThreadSafeCache::new(); let mut cache1 = cacheinit.clone(); thread::spawn(move || { cache1.put("key1".tostring(), 1); cache1.putexp("key2".tostring(), 2, 3000); }); let mut cache2 = cacheinit.clone(); let t = thread::spawn(move || { sleep(Duration::frommillis(2000)); cache2.rm("key1".tostring()); cache2.get("key2".tostring()) }); asserteq!(t.join().unwrap(),Some(2)); let mut cache3 = cacheinit.clone(); asserteq!(cache3.get("key2".tostring()), Some(2)); sleep(Duration::frommillis(2000)); asserteq!(cache3.get("key2".tostring()), None); }

```

``` use threadsafecache::*; fn main() { let mut builder: Builder = Builder::init(); builder.maxsize(1000); let mut cache = builder.build(); cache.put("a".tostring(), 1); cache.save("test.db");

let mut builder: Builder<String, i32> = Builder::init();
builder.max_size(1000);
let mut cache_clean = builder.build();
cache_clean.load("test.db");
assert_eq!(cache_clean.get("a".to_string()), Some(1));

}

```