Macro cached::cached
[−]
[src]
macro_rules! cached { ($cachename:ident >> $name:ident ($($arg:ident : $argtype:ty),*) -> $ret:ty = $body:expr) => { ... }; ($cachename:ident : $cachetype:ident >> $name:ident ($($arg:ident : $argtype:ty),*) -> $ret:ty = $body:expr) => { ... }; ($cachename:ident : $cachetype:ident = $cacheinstance:expr ; >> $name:ident ($($arg:ident : $argtype:ty),*) -> $ret:ty = $body:expr) => { ... }; }
Creates a function wrapping a cache.
There are several options for specifying a cache-type.
1.) Use the default unbounded cache
```rust,ignore
cached!{CACHE_NAME >>
func_name(arg1: arg1_type, arg2: arg2_type) -> return_type = {
2.) Use an explicitly specified cache-type, but let the macro instantiate it.
The cache-type is expected to have a new
method that takes no arguments.
```rust,ignore
cached!{CACHE_NAME: SpecificCacheType >>
func_name(arg1: arg1_type, arg2: arg2_type) -> return_type = {
3.) Use an explicitly specified cache-type and provide the instantiated cache struct.
This would allow using caches that require args in their constructor or has a constructor
method other than a simple new
.
rust,ignore cached!{CACHE_NAME: MyCache = MyCache::with_capacity(arg); >> func_name(arg1: arg1_type, arg2: arg2_type) -> return_type = { <regular function body> }}