#conversion #utilities #options #result #convert #cargo-toml

some-to-err

一套将 Option 转换为 Result 的 trait,提供将 Some 值转换为 Err 的方法,同时将 None 值作为 Ok 处理,直接或通过闭包生成 Ok 结果

6 个版本

0.2.1 2023年4月8日
0.2.0 2023年3月24日
0.1.1 2023年3月20日
0.0.2 2023年3月17日

#2598 in Rust 模式

Download history 10/week @ 2024-03-11 92/week @ 2024-03-18 49/week @ 2024-04-01 18/week @ 2024-04-08 27/week @ 2024-04-15 13/week @ 2024-04-22 1/week @ 2024-04-29 26/week @ 2024-05-06 7/week @ 2024-05-13 61/week @ 2024-05-20 27/week @ 2024-05-27 35/week @ 2024-06-03 28/week @ 2024-06-10 28/week @ 2024-06-24

92 每月下载量

MIT 许可协议

7KB
82

Some To Err

Crates.io Crates.io License: MIT Build Status Documentation

此 crate 提供了一对 trait,用于轻松地将 Option 转换为 Result,优雅地将 Some 值转换为 Err,同时优雅地处理 None 值作为 Ok。利用这些多才多艺的 trait,充分发挥 Rust 的错误处理能力。

使用方法

通过以下方式将此添加到您的 crate 中:

cargo add some-to-err

或者将此添加到您的 Cargo.toml

[dependencies]
some-to-err = "0.2.0"

然后

use some_to_err::ErrOr;

{
    let some: Option<&str> = Some("Error");
    let result = some.err_or(42);
    assert_eq!(result, Err("Error"));
}

{
    let none: Option<&str> = None;
    let result = none.err_or(42);
    assert_eq!(result, Ok(42));
}
use some_to_err::ErrOrElse;
{
    let input: Option<&str> = None;
    let result = input.err_or_else(|| "Ok");
    assert_eq!(result, Ok("Ok"));
}

{
    let input = Some("Error");
    let result = input.err_or_else(|| "Ok");
    assert_eq!(result, Err("Error"));
}

无运行时依赖