Crate assert_cfg
source · [−]Expand description
Static assertions for crate features, with informative errors.
The macros from this crate print which specific features are responsible for the assertion failure.
Examples
Exactly one feature
This example demonstrates the exactly_one
macro,
which asserts that exactly one of the listed features is enabled.
ⓘ
assert_cfg::exactly_one!{
feature = "foo",
feature = "bar",
feature = "qux",
}
When the "foo"
and "bar"
features are enabled,
the above code produces this compile-time error:
error[E0080]: evaluation of constant value failed
--> src/lib.rs:15:1
|
4 | / assert_cfg::exactly_one!{
5 | | feature = "foo",
6 | | feature = "bar",
7 | | feature = "qux",
8 | | }
| |_^ the evaluated program panicked at '
too many features were enabled, only one of them can be enabled:
- `feature = "foo"`
- `feature = "bar"`
No-std support
assert_cfg
is #![no_std]
, it can be used anywhere Rust can be used.
Minimum Supported Rust Version
This requires Rust 1.57.0, because it uses the panic
macro in a const context.
Macros
Asserts that all of the passed-in features are enabled.
Asserts that any of the passed-in features are enabled.
Asserts that exactly one of the passed-in features is enabled.
Asserts that none of the passed-in features are enabled.