如何有条件地启用基于 cfg 的 Rust 功能?
How can I conditionally enable a Rust feature based on cfg?
我想使用 #![feature(custom_test_frameworks)]
,但如果可能,只能通过 #[cfg(not(target_os = "custom_os_name"))]
有条件地启用它。我仍然希望可以选择 运行 使用 rusts libtest 直接在我的主机系统上进行一些测试,但显然我不允许通过 cfg
:
修改功能
错误信息:
note: inner attributes, like `#![no_std]`, annotate the item enclosing them,
and are usually found at the beginning of source files. Outer attributes, like
`#[test]`, annotate the item following them.
是否有任何其他方法可以有条件地启用 "inner attribute"?
您可以使用 #[cfg_attr]
应用基于某些其他功能的属性。
对于你的情况,你可以这样做:
#![cfg_attr(
not(target_os = "custom_os_name"),
feature(custom_test_frameworks)
)]
我想使用 #![feature(custom_test_frameworks)]
,但如果可能,只能通过 #[cfg(not(target_os = "custom_os_name"))]
有条件地启用它。我仍然希望可以选择 运行 使用 rusts libtest 直接在我的主机系统上进行一些测试,但显然我不允许通过 cfg
:
错误信息:
note: inner attributes, like `#![no_std]`, annotate the item enclosing them,
and are usually found at the beginning of source files. Outer attributes, like
`#[test]`, annotate the item following them.
是否有任何其他方法可以有条件地启用 "inner attribute"?
您可以使用 #[cfg_attr]
应用基于某些其他功能的属性。
对于你的情况,你可以这样做:
#![cfg_attr(
not(target_os = "custom_os_name"),
feature(custom_test_frameworks)
)]