Macro engine::cache [−][src]
macro_rules! cache { (fn $name:ident ($($arg:ident: $arg_type:ty), *) -> $ret:ty => $body:expr) => { ... }; }
A macro for defining functions whose return values will wrapped in a Cache
.
Example
use engine::cache; cache! { fn fib(n: u32) -> u32 => { match n { 0 => 1, 1 => 1, _ => fib(n - 1) + fib(n - 2), } } } assert_eq!(fib(20), 10946); assert_eq!(FIB_CACHE.lock().unwrap().get(&20), Some(&10946));