#error #result #fatal #rich #recoverable #handle

nightly no-std rich-result

区分可恢复和致命错误的丰富结果类型

2 个版本

0.1.2 2022 年 12 月 22 日
0.1.1 2022 年 12 月 22 日
0.1.0 2022 年 11 月 29 日

1873Rust 模式

CC0 许可证

31KB
861 行(不包括注释)

Rust 的一个更丰富的 Result 类型

(在 crates.io 上)

定义为

pub enum Result<T, RE, FE> {
    Ok(T),
    Recoverable(RE),
    Fatal(FE),
}

它可以轻松处理可恢复和致命错误。

在它上面使用 ?,它会与 Result::Fatal 分离,或者返回一个

pub enum LocalResult<T, RE> {
    NoErr(T),
    Handle(RE),
}

然后可以使用 ? 来从其中获取 T,或者与 Result::Recoverable 分离。

Resultcore 在使用 ? 时要么与 Fatal 分离,要么在 Ok 中返回值。

此外,例如对于公共 API 界面,您可以使用 Result 类型从 core 通过这种方式堆叠:Result<Result<T, RE>, FE>,其中所有 ? 的实例都按预期工作。

无运行时依赖

功能