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

Default
enabled

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

Default
disabled

When enabled, SNAFU will implement the core::error::Error trait, even when the std feature flag is also enabled.

§guide

Default
disabled

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

Default
disabled

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

Default
disabled

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

Default
disabled

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.