Crates.io | pocketcache |
lib.rs | pocketcache |
version | 0.0.1 |
source | src |
created_at | 2020-09-10 10:55:45.02596 |
updated_at | 2020-09-10 10:55:45.02596 |
description | A simple in-memory cache for Rust. |
homepage | |
repository | |
max_upload_size | |
id | 286983 |
size | 12,133 |
A simple in-memory cache for Rust.
[dependencies]
pocketcache = "0.0.1"
use pocketcache::cache::Cache;
use pocketcache::time::Expiration;
#[derive(Debug)]
struct Data {
messages: Vec<String>,
}
fn main() {
let expiration = Expiration::Hour(3);
let mut cache = Cache::<Data>::new(expiration);
// set
cache.set(
"fruit",
Data {
messages: vec![String::from("peach")],
},
);
// get
let fruit = cache.get("fruit");
println!("{:#?}", fruit); // Some( Data { messages: { ["peach"] } } )
// delete
cache.delete("fruit");
let fruit = cache.get("fruit");
println!("{:#?}", fruit); // None
}
use pocketcache::time::Expiration;
let expiration = Expiration::Second(30); // 30ces
let expiration = Expiration::Minute(5); // 5min
let expiration = Expiration::Hour(3); // 3 hour
let expiration = Expiration::Default; // 1 hour
use pocketcache::cache::Cache;
use pocketcache::time::Expiration;
let mut cache = Cache::<&str>::new(Expiration::Default);
cache.set("fruit", "banana");
cache.set("vegetable", "carrot");
cache.set("meat", "crab");
let mut cache = Cache::<&str>::new(Expiration::Default);
let fruit = cache.get("fruit");
println!("{:#?}", fruit); // None
cache.set("fruit", "banana");
let fruit = cache.get("fruit");
println!("{:#?}", fruit); // Some("banana")
cache.set("fruit", "peach");
let fruit = cache.get("fruit");
println!("{:#?}", fruit); // Some("peach")
// after 1 hour...
let fruit = cache.get("fruit");
println!("{:#?}", fruit); // None
cache.set("fruit", "banana");
cache.delete("fruit");
let fruit = cache.get("fruit");
println!("{:#?}", fruit); // None
cache.set("fruit", "banana");
cache.set("vegetable", "carrot");
cache.set("meat", "crab");
cache.clear();
println!("{:#?}", cache.get("fruit")); // None
println!("{:#?}", cache.get("vegetable")); // None
println!("{:#?}", cache.get("meat")); // None