1 个不稳定版本
0.1.0 | 2022 年 8 月 24 日 |
---|
#52 在 #cfg
16KB
212 行
为 crate 功能提供静态断言,并带有信息性错误。
此 crate 中的宏会打印出导致断言失败的具体功能。
示例
恰好一个功能
此示例演示了 exactly_one
宏,该宏断言列表中恰好有一个功能被启用。
assert_cfg::exactly_one!{
feature = "foo",
feature = "bar",
feature = "qux",
}
当启用 "foo"
和 "bar"
功能时,上述代码会产生以下编译时错误
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
assert_cfg
是 #![no_std]
,可以在 Rust 可以使用的任何地方使用。
最低支持的 Rust 版本
此版本需要 Rust 1.57.0,因为它在 const 上下文中使用了 panic
宏。
依赖项
~215KB