Kash
Function and method cache and memoization library for Rust, using #[kash] macro.
use kash;
/// Defines a function named `fib` that uses a cache implicitly named `FIB`.
/// By default, the cache will be the function's name in all caps.
Or if you want to limit the size and time-to-live:
use kash;
const TTL: u64 = 1000;
Features
default: Includesahashfeature.ahash: Enableahashhasher as default hashing algorithm.async: Include support for async functions.redis_store: Include Redis cache store.redis_tokio: Include async Redis support usingtokioandtokiotls support, impliesredis_storeandasync.redis_connection_manager: Enable the optionalconnection-managerfeature ofredis. Any async redis caches created will use a connection manager instead of aMultiplexedConnection.redis_ahash: Enable the optionalahashfeature ofredis.disk_store: Include disk cache store.
use sleep;
use Duration;
use kash;
/// Use an explicit cache-type with a custom creation block and custom cache-key generating block
use ;
use AsyncRedisCache;
use Error;
/// Cache the results of an async function in redis. Cache
/// keys will be prefixed with `cache_redis_prefix`.
async
use ;
use DiskCache;
use Error;
/// Cache the results of a function on disk.
/// Cache files will be stored under the system cache dir
/// unless otherwise specified with `dir` or the `create` argument.
Functions defined via macros will have their result, cached using the function's arguments as a key by default.
When a macro-defined function is called, the function's cache is first checked for an already computed (and still valid) value before evaluating the function body.
See examples directory for more examples.