#options #cache #timed #ephemeral

ephemeropt

一种短暂的 Option,在一段时间后恢复为 None

5 个不稳定版本

0.3.0 2024 年 1 月 6 日
0.2.2 2023 年 9 月 24 日
0.2.1 2023 年 8 月 10 日
0.2.0 2023 年 8 月 9 日
0.1.0 2023 年 8 月 9 日

#187缓存

每月 33 次下载

Apache-2.0 OR MIT

22KB
304 代码行

EphemerOpt

EphemerOpt 是 Rust 的一个短暂 Option。创建时,这个 EphemeralOption 会接受一个过期时间和一个值,在时间耗尽后,EphemeralOption 将恢复为 None

这可以用于缓存值而不是重新运行昂贵的计算来获取它们。请参阅示例,以了解使用 CPU 数据和消息传递的实际应用。


lib.rs:

EphemerOpt 是 Rust 的一个短暂 Option。创建时,这个 EphemeralOption 会接受一个过期时间和一个值,在时间耗尽后,EphemeralOption 将恢复为 None

示例

use ephemeropt::EphemeralOption;

let mut num_opt = EphemeralOption::new(0, std::time::Duration::from_secs(1));
// Will only go up to 10, because every other call will be cached
for _ in 0..=20 {
    match num_opt.get() {
        Some(&num) => println!("{num}"),
        None => {
            let prev_num = num_opt.get_expired().unwrap();
            let num = num_opt.insert(prev_num + 1);
            println!("{num}");
        }
    }
    std::thread::sleep(std::time::Duration::from_millis(500));
}

无运行时依赖