10 个版本 (4 个破坏性更新)

使用旧的 Rust 2015

0.5.1 2018年8月3日
0.5.0 2018年7月27日
0.4.1 2018年6月18日
0.3.0 2018年5月30日
0.1.0 2018年5月13日

#failure 中排名 60

Download history 1385/week @ 2024-03-14 1769/week @ 2024-03-21 1701/week @ 2024-03-28 1833/week @ 2024-04-04 1842/week @ 2024-04-11 1688/week @ 2024-04-18 1430/week @ 2024-04-25 1618/week @ 2024-05-02 1555/week @ 2024-05-09 1809/week @ 2024-05-16 1554/week @ 2024-05-23 1528/week @ 2024-05-30 1298/week @ 2024-06-06 1352/week @ 2024-06-13 1484/week @ 2024-06-20 1058/week @ 2024-06-27

每月下载量 5,465
128 个 crate 中使用

MIT/Apache 许可证

12KB
69 行(不包括注释)

exitfailure - 在 main() 中方便地使用 ? 的 newtype 包装器

Build Status Build status codecov

exitfailure 提供了一些 newtype 包装器,以帮助在 main() 中使用 ?。

它旨在与 rust 1.26 及以上版本的 "? in main()" 功能一起使用(请参阅跟踪问题)。

此库导出的主要项目包括

  • ExitFailure:围绕 failure::Error 的包装器,允许从 main 打印 ?,显示更友好的错误信息,包括任何可用的上下文和回溯。

  • ExitDisplay<E>:围绕 E: std::fmt::Display 的包装器,允许从 main 发出的错误信息使用 Display 而不是 Debug

有关更多信息,包括有关类型的更多详细信息,请参阅API 文档

示例

#[macro use] extern crate failure;
extern crate exitfailure;

use failure::ResultExt;
use exitfailure::ExitFailure;

fn main() -> Result<(), ExitFailure> {
     Ok(some_fn()?)
}

fn some_fn() -> Result<(), failure::Error> {
     let error = Err(failure::err_msg("root cause failure"));
     Ok(error.context("this is some context".to_string())?)
}

当执行时,这将打印

Error: this is some context
Info: caused by root cause failure

如果设置了环境变量 RUST_BACKTRACE=1,则打印将包括被包装的 failure::Error 提供的任何回溯信息。

许可证

根据以下任一许可证授权:

供您选择。

贡献

除非您明确表示,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在作品中并由您提供的内容,将按照上述方式双许可,不附加任何额外条款或条件。

依赖关系

~64KB