#lazy-evaluation #values #sync #failable #unsync

lazytry

提供可能失败的延迟评估值

1 个不稳定版本

0.1.0 2022年7月27日

#571 in 科学

MIT 许可证

6KB
126

lazytry

lazytry 致力于实现可能失败的延迟数据评估。

use lazytry::unsync::LazyTry;

let lazy: LazyTry<i32, _> = LazyTry::new(|| "1".parse());

assert_eq!(lazy.force().unwrap(), &1);
assert_eq!(lazy.force().unwrap(), &1);
use lazytry::unsync::LazyTryFn;
use std::num::{IntErrorKind, ParseIntError};

let lazy: LazyTryFn<i32, ParseIntError> = LazyTry::new(|| "a".parse());

assert_eq!(
    *lazy.force().unwrap_err().into_err().unwrap().kind(),
    IntErrorKind::InvalidDigit
);

当前代码相当实验性,包括未经证明的安全(impl Sync)的使用、缺乏文档以及奇怪且不完整的 API。

依赖项

~49KB