2个稳定版本
2.0.0 | 2023年11月7日 |
---|---|
1.0.0 | 2023年10月30日 |
#209 in 缓存
6KB
96 行
在hashmap中缓存无副作用的闭包的返回值。受 closure_cacher crate 启发,但试图提供更灵活的实现。
use memorize::{cached, Cache};
let demo = cached(|arg, _| arg * 2);
assert_eq!(demo.find(&7), 14);
第二个参数是回调,它可以用于递归。
use memorize::{cached, Cache};
let demo = cached(|arg, r| match arg {
1 | 2 => 1,
n => r(&(n - 1)) + r(&(n - 2)),
});
assert_eq!(demo.find(&15), 610)
lib.rs
:
在hashmap中缓存无副作用的闭包的返回值 受 closure_cacher
crate 启发,但试图提供更灵活的实现。
use memorize::{cached, Cache};
let demo = cached(|arg, _| arg * 2);
assert_eq!(demo.find(&7), 14);
第二个参数是回调,它可以用于递归。
use memorize::{cached, Cache};
let demo = cached(|arg, r| match arg {
1 | 2 => 1,
n => r.r(&(n - 1)) + r.r(&(n - 2)),
});
assert_eq!(demo.find(&15), 610)
依赖关系
~2MB
~26K SLoC