5个版本
使用旧Rust 2015
0.0.1-rc4 | 2020年3月15日 |
---|---|
0.0.1-rc3 | 2019年11月22日 |
0.0.1-rc2 | 2019年10月27日 |
0.0.0 | 2019年10月8日 |
72 在 无标准库 中排名
10,070 每月下载量
用于 34 个包 (13 个直接使用)
14KB
188 行
核心错误
在无std环境中处理Error
的特质。
警告
这是一个预发布版本,旨在允许实验和集成到各种错误处理包中。请勿使用它!1.0.0即将发布。
理由
随着最近错误处理包的激增,很明显,目前缺乏core::error::Error
的情况并不理想。在snafu
中,通过全新的Error特质引入了对no_std
的支持——这可能会引起与failure
类似的问题,即与生态系统不兼容。
理想情况下,Error
特质应该出现在核心中,但由于一致性问题以及添加到std::error::Error
中的std依赖特性,短期内不太可能得到解决。因此,我提议创建一个新的crate,即core-error
——暴露我们自己的Error
特质版本。这个crate的目标有两个:
- 为各种错误处理crate提供一个公共特质(Failure、Snafu、Fehler、Anyhow、error_chain等)
- 允许那些不想依赖特定错误处理crate的no_std库仍然暴露可以与这些库交互的错误。
这个crate仍然处于早期阶段。一旦达到1.0.0版本,它将准备好集成到各种错误crate中。此外,一旦达到1.0.0版本,它将遵循Rust相同的稳定性保证。
用法
这个crate只提供了一个Error特质,它与std中的特质相同,只是没有提供弃用方法。它还包含两个特性
std
:简单重新导出std::error::Error
alloc
:在alloc Errors(包括Box)上实现Error
使用这个crate的库应该将它们等价特性转发到这个库。
最低Rust版本
该crate支持最低到1.0.0版本。它会自动检测Rust版本,以便知道在哪个错误结构体上实现特质的。
使用no-default-features
,该crate仅从1.13.0版本开始编译(关于为什么这个版本是最低支持版本的原因,见#11)。