Module snafu::guide::feature_flags
source · 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
unstable-core-error
guide
backtraces-impl-backtrace-crate
unstable-provider-api
futures
unstable-try-trait
§std
When enabled, SNAFU will implement the std::error::Error
trait. When
disabled, SNAFU will instead implement a custom Error
trait that is
similar, but does not need any features from the standard library.
See also unstable-core-error
.
Most usages of SNAFU will want this feature enabled.
§unstable-core-error
When enabled, SNAFU will implement the core::error::Error
trait,
even when the std
feature flag is also enabled.
§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 Result
s.
§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.