guide only.Expand description
§Optional extensions to the crate
In addition to the feature flags controlling compatibility, there are Cargo feature flags that extend SNAFU for various use cases:
§std
When enabled, SNAFU will implement the standard library’s Error
trait. When disabled and targeting a version of Rust older than Rust
1.81, SNAFU will instead implement a custom Error trait that is
similar, but does not need any features from the standard library.
See also rust_1_81.
Most usages of SNAFU will want this feature enabled.
§alloc
When enabled, SNAFU will gain methods dealing with boxed trait objects
(Box<dyn Error>) and stringly-typed errors such as Whatever.
Most usages of SNAFU will want this feature enabled.
If you wish to use this feature without the std feature, you
will need to enable the rust_1_81
feature.
§guide
When enabled, the guide module containing the user’s guide will be
built.
Most usages of SNAFU will want this feature disabled.
§backtraces-impl-backtrace-crate
When enabled, the SNAFU Backtrace type becomes an alias to the
backtrace::Backtrace type. This allows interoperability with other
crates that require this type.
It is recommended that only applications make use of this
feature. When SNAFU’s minimum supported Rust version has a stable
Backtrace type, this feature will no longer be supported and will be
removed.
§unstable-provider-api
When enabled, SNAFU-generated errors will implement the
std::error::Error::provide method, allowing data to be retrieved
using request_ref and request_value on a std::error::Error
trait object reference. Provided data can be controlled using
#[snafu(provide)].
It is recommended that only applications make use of this feature.
§futures
When enabled, you can use the futures::TryFutureExt and
futures::TryStreamExt traits to add context methods to futures
and streams returning Results.
§unstable-try-trait
default: disabled
When enabled, the ? operator can be used on Result values in
functions where a Report type is returned.
It is recommended that only applications make use of this feature.