#错误处理 #结果 #部分成功 #非致命错误

partial-result

一个用于返回非关键错误成功的库

1个不稳定版本

0.1.0 2024年1月18日

#2490 in Rust模式

MIT许可证

8KB
80

partial-result

partial-result是一个Rust库,它提供了一个表示部分成功的类型,即可以包含失败的结果。这在需要返回结果和失败时非常有用,其中失败表示非致命错误。

安装

将以下内容添加到您的Cargo.toml

[dependencies]
partial-result = "0.1.0"

然后运行cargo build来下载和编译该包。

使用

以下是使用PartialResult类型的示例

use partial_result::{
    PartialResult,
    PartialResultExt,
    PartialSuccess,
};

#[derive(Debug)]
enum CriticalError {
    WeAreDoomed(String),
    EverythingIsLost(String),
}

#[derive(Debug)]
enum NonCriticalError {
    SomethingWentWrong(String),
    SomethingElseWentWrong(String),
}

fn do_something() -> PartialResult<u32, NonCriticalError, CriticalError> {
    let value = 42;
    let failure = NonCriticalError::SomethingWentWrong("Something went wrong".to_string());

    PartialResult::partial_success(value, failure)
}

fn main() -> Result<(), CriticalError> {
    let result = do_something()?;
    println!("Result: {}", result.value);
    result.failure.map(|e| println!("WARN: there was an issue during the computation: {:?}", e));

    Ok(())
}

许可证

本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE文件。

无运行时依赖