#failure #error #perfect #convenience #string #macro #cli

cli-failure

提供 Failure(String) 实现 std::error::Error。包含方便的宏,非常适合与 CLIs 中的 wrap-match 一起使用。

1 个稳定版本

1.0.0 2023 年 8 月 3 日

#1775 in Rust 模式


用于 doc-sync

MIT 许可证

7KB
75

cli-failure

提供 Failure(String) 实现 std::error::Error。包含方便的宏,非常适合与 CLIs 中的 wrap-match 一起使用。

该包不应在库中使用。 相反,使用类似 thiserror 的东西。对于库,拥有特定的错误可以让库用户更好地处理它们。

文档 | crates.io

示例

// wrap-match is not required, but it is highly recommended
fn example() -> Result<(), Box<dyn Error>> {
    let result = "bad";
    // With convenience macros

    // These two lines are the same
    bail!("something {result} happened");
    return failure!("something {result} happened");

    return failure_raw!("something {result} happened").err_boxed();
    return Err(failure_raw!("something {result} happened").boxed());
    // Manually
    return Failure(format!("something {result} happened")).err_boxed();
    return Err(Failure(format!("something {result} happened")).boxed());
    Ok(())
}

无运行时依赖