Uses old Rust 2015
|0.0.1-rc4||Mar 15, 2020|
|0.0.1-rc3||Nov 22, 2019|
|0.0.1-rc2||Oct 27, 2019|
|0.0.0||Oct 8, 2019|
#114 in No standard library
828 downloads per month
Used in 9 crates (5 directly)
Traits for working with
This is a pre-release meant to allow experimentation and integration into the various error handling crates. Please do not use it yet! 1.0.0 is right around the corner.
With the recent proliferation of error-handling crates, it has become clear that
the situation around the lack of a
core::error::Error is really suboptimal. In
no_std support is being introduced through a whole new Error trait
no_std - which could lead to similar problems that
failure had by
becoming incompatible with the ecosystem.
Error trait would show up in core, but due to coherence concerns
and std-dependent features being added to
std::error::Error, a resolution is
unlikely to happen soon. As such, I propose making a new crate,
exposing our own version of the
Error trait. The goal of this crate is
- Provide a common trait for various error handling crates (Failure, Snafu, Fehler, Anyhow, error_chain, and any others?)
- Allow no_std libraries that don't want to depend on a specific error handling crate to still expose errors that can interoperate with those libraries.
This crate is still in the early stages. Once it reaches 1.0.0, it will be ready for integration in the various error crates. Furthermore, once it reaches 1.0.0, it will follow the same stability guarantees Rust does.
This crate simply provides an Error trait, which is identical to the one in std except for not providing deprecated methods. It also contains two features:
std: simply reexport
alloc: implement Error on alloc Errors (incl. Box)
Libraries using this crate should forward their equivalent features to this library.
This crate works all the way down to 1.0.0. It auto-detects the Rust version in order to know which error structs to implement the trait on.
no-default-features, the crate only compiles from 1.13.0 onwards (See #11
for the reason why this release is the minimum suported version).