#error #core

无std core-error

libcore的std::error::Error

5个版本

使用旧Rust 2015

0.0.1-rc42020年3月15日
0.0.1-rc32019年11月22日
0.0.1-rc22019年10月27日
0.0.0 2019年10月8日

72无标准库 中排名

Download history 2479/week @ 2023-11-18 2477/week @ 2023-11-25 1947/week @ 2023-12-02 2306/week @ 2023-12-09 2428/week @ 2023-12-16 1290/week @ 2023-12-23 1626/week @ 2023-12-30 2442/week @ 2024-01-06 1951/week @ 2024-01-13 2227/week @ 2024-01-20 2505/week @ 2024-01-27 3199/week @ 2024-02-03 3058/week @ 2024-02-10 2402/week @ 2024-02-17 2333/week @ 2024-02-24 1848/week @ 2024-03-02

10,070 每月下载量
用于 34 个包 (13 个直接使用)

MIT/Apache

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)。

无运行时依赖