gpt4 book ai didi

rust - 有没有办法对多个语句使用 cfg(feature) 检查?

转载 作者:行者123 更新时间:2023-11-29 08:20:54 24 4
gpt4 key购买 nike

有没有办法尽量减少以下功能检查?

#[cfg(feature = "eugene")]
pub mod eugene_set_steam_id;
#[cfg(feature = "eugene")]
pub mod eugene_balance;
#[cfg(feature = "eugene")]
pub mod eugene_force_map;
#[cfg(feature = "eugene")]
pub mod eugene_rating;
#[cfg(feature = "eugene")]
pub mod eugene_stat;
#[cfg(feature = "eugene")]
pub mod eugene_steam_id;
#[cfg(feature = "eugene")]
pub mod eugene_top;

类似于:

#[cfg(feature = "eugene")] {
pub mod eugene_set_steam_id;
pub mod eugene_balance;
pub mod eugene_force_map;
pub mod eugene_rating;
pub mod eugene_stat;
pub mod eugene_steam_id;
pub mod eugene_top;
}

这会更好地传达意义并且更符合人体工程学。

最佳答案

cfg-if crate提供 cfg-if! 宏来执行您想要的操作:

#[macro_use]
extern crate cfg_if;

cfg_if! {
if #[cfg(feature = "eugene")] {
pub mod eugene_set_steam_id;
pub mod eugene_balance;
pub mod eugene_force_map;
pub mod eugene_rating;
pub mod eugene_stat;
pub mod eugene_steam_id;
pub mod eugene_top;
} else {
}
}

事实上,它甚至用你的话来描述自己:

A macro to ergonomically define an item depending on a large number of #[cfg] parameters. Structured like an if-else chain, the first matching branch is the item that gets emitted.

关于rust - 有没有办法对多个语句使用 cfg(feature) 检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47860428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com