1 个不稳定版本

0.1.1 2021 年 9 月 28 日
0.1.0 2021 年 9 月 28 日

#1527Rust 模式

Download history 136/week @ 2024-03-13 157/week @ 2024-03-20 161/week @ 2024-03-27 147/week @ 2024-04-03 133/week @ 2024-04-10 129/week @ 2024-04-17 129/week @ 2024-04-24 136/week @ 2024-05-01 122/week @ 2024-05-08 119/week @ 2024-05-15 123/week @ 2024-05-22 143/week @ 2024-05-29 99/week @ 2024-06-05 101/week @ 2024-06-12 136/week @ 2024-06-19 118/week @ 2024-06-26

467 每月下载量
11 个包中使用 (4 个直接使用)

MIT 许可证

8KB

fmterr

API Docs Crate Page Top Language

fmterr (发音为 fumpterr,显然!) 是一个为 Rust 设计的微型错误报告工具!如果你有一个包含源链的错误,并且希望将错误显示给用户而不引入像 anyhow 这样的工具,那么 fmterr 就是为你准备的!只需运行 fmt_err(&err),你将得到一个字符串错误消息,该消息会以良好的方式显示源链,供最终用户查看。

用法

你可以使用 fmterr 来格式化任何实现 std::error::Error 的错误(基本上是任何有价值的错误)如下

use fmterr::fmt_err;

// Imagine this is a super-complex error with a nested source
let err = std::io::Error::from(std::io::ErrorKind::NotFound);

let err_str = fmt_err(&err);
println!("{}", err_str);

如果你使用一个复杂错误,将会产生以下结果

Error: first error message

Caused by:
    second error message
    Caused by:
        third error message

如果你使用没有源的信息(例如,带有 io::ErrorKind::NotFound

Error: entity not found

fmterranyhow 的比较

大多数库应用程序将使用 thiserror 或类似的库来创建它们的错误,然后有时需要格式化工具。如果你将 anyhow 作为格式化工具使用,你基本上是在用大锤修复凹痕,你其实并不需要它!话虽如此,anyhow 在需要其其他功能的程序中非常出色。

贡献

我们感谢所有类型的贡献,有关更多信息,请查看我们的 贡献指南!另外,请务必遵守我们的 行为准则

许可证

请参阅 LICENSE

没有运行时依赖