#inspect #result #options

无需 std respector

为 Option 和 Result 类型添加 inspect 方法的扩展

3 个版本

0.1.2 2021 年 4 月 13 日
0.1.1 2021 年 3 月 27 日
0.1.0 2021 年 3 月 25 日

#44 in #inspect

MIT 许可证

6KB

respector

Downloads License crates.io docs.rs

OptionResult 类型添加 inspect 方法。

这允许在传递值的同时对 SomeOk(使用 inspect)或 Err(使用 inspect_err)进行处理,这在调试、日志记录等场景中引入副作用可能很有用。

用法

use respector::prelude::*;

let some = Some(10);
assert_eq!(some.inspect(|x| println!("Some({})", x)), some); // Prints `Some(10)`.

let ok = Ok::<_, ()>(10);
assert_eq!(ok.inspect(|x| println!("Ok({})", x)), ok); // Prints `Ok(10)`.

let err = Err::<(), _>(10);
assert_eq!(Err(10).inspect_err(|x| println!("Err({})", x)), err); // Prints `Err(10)`.

无运行时依赖