#error #features #helper #macro #compiler-error

feature_utils

处理功能标志时的良好编译器错误宏

1 个不稳定版本

0.0.0 2022 年 11 月 22 日

#18#compiler-error

Download history 1/week @ 2024-03-14 11/week @ 2024-03-28 11/week @ 2024-04-04

69 每月下载量

MIT/Apache

7KB

功能工具

该包实现了一系列有用的功能相关宏。这些宏旨在在处理相关、有时相互排斥的功能集合时,使编译器消息易于理解。

稳定性

我们目前处于预 0.1 版本,因此我们不提供稳定性保证。Cargo 将 0.0.* 版本视为所有新版本都可能存在破坏性更改。

示例

build.rs

// Each of these embedded microcontrollers are mutually exclusive and at least one
// must be provided.
feature_utils::mandatory_and_unique!("esp32c3", "esp8266", "nrf52840");
fn main() {}

如果不传递任何功能,将显示一条消息

error: You must provide one of the mandatory features!
 --> src/lib.rs:18:1
  |
5 | feature_utils::mandatory_and_unique!("esp32c3", "esp8266", "nrf52840");
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: this error originates in the macro `$crate::at_least_one_provided` which comes
from the expansion of the macro `feature_utils::mandatory_and_unique` (in Nightly
builds, run with -Z macro-backtrace for more info)

如果传递多个相互排斥的功能,将显示另一条消息

error: features "esp32c3" and "nrf52840" cannot be used together!
 --> src/lib.rs:18:1
  |
5 | feature_utils::mandatory_and_unique!("esp32c3", "esp8266", "nrf52840");
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: this error originates in the macro `$crate::unique` which comes from the
expansion of the macro `feature_utils::mandatory_and_unique` (in Nightly builds, run
with -Z macro-backtrace for more info)

许可证

此存储库中的所有代码都根据您的要求在以下许可证下双许可

这意味着您可以选择您喜欢的许可证!

除非您明确声明,否则根据 Apache-2.0 许可证定义,您有意提交的任何贡献都应按上述方式双许可,而不附加任何额外的条款或条件。

无运行时依赖