typedcache

This crate provides concurrent-safe typedcache with expiration capabilities.
Usage
Add this to your Cargo.toml
:
[build-dependencies]
typedcache = "0.1"
Example
use std::time::Duration;
use typedcache::typed::TypedMap;
#[tokio::main]
async fn main() {
let cache = typedcache::cache("test".into()).await;
cache
.add(
TestKey("key_erpired_after_1s".into()),
Duration::from_secs(1),
TestValue(1),
)
.await;
tokio::time::sleep(Duration::from_secs(2)).await;
assert!(cache
.get(&TestKey("key_erpired_after_1s".into()))
.await
.is_none());
}
#[derive(Debug, Clone, Eq, PartialEq, Hash)]
pub struct TestKey(String);
impl TypedMap for TestKey {
type Value = TestValue;
}
pub struct TestValue(isize);
Acknowledgements
Typed any map for rust: typedmap
Concurrency-safe golang caching library with expiration capabilities: cache2go
License
Dual-licensed under the MIT license and the Apache License (Version 2.0).
See LICENSE-MIT and LICENSE-APACHE for details.