#assertions #assert #cfg #no-std

no-std assert_cfg

为 crate 功能提供静态断言,并带有描述性错误

1 个不稳定版本

0.1.0 2022 年 8 月 24 日

#52#cfg

Zlib 许可证

16KB
212

Rust crates-io api-docs

为 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