Skip to content

Millione/typedcache

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

typedcache

Crates.io License Build Status

This crate provides concurrent-safe typedcache with expiration capabilities.

Usage

Add this to your Cargo.toml:

[dependencies]
typedcache = "0.2"

Example

use std::time::Duration;

use typedcache::typed::TypedMap;

#[tokio::main]
async fn main() {
    let cache = typedcache::cache("test".into());
    cache
        .add(
            TestKey("key_erpired_after_1s".into()),
            Duration::from_secs(1),
            TestValue(1),
        );
    tokio::time::sleep(Duration::from_secs(2)).await;
    assert!(cache
        .get(&TestKey("key_erpired_after_1s".into()))
        .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.

About

Concurrent-safe typedcache with expiration capabilities.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages