My Rust项目的示例仅与某些功能相关。
我可以忽略主要功能:
#[cfg(feature = "foo")]
fn main() {
但是,当我运行cargo test
时,依赖于该功能的其他语句会导致错误。所以我必须在函数上使用一些cfg属性语句,并使用语句来禁用依赖于该功能的代码。
有没有办法根据功能配置忽略整个示例文件?
此外,由于在没有该功能的情况下隐藏了main,cargo test
会出现此错误:
错误:未找到主要功能
所以这不是一个好的解决方案。
答案 0 :(得分:2)
更具体地使用#[cfg]
指令,在启用main()
时提供foo
,在main()
时提供foo
:< / p>
extern crate blah;
// other code which will still compile even without "foo" feature
#[cfg(feature = "foo")]
fn main() {
use blah::OnlyExistsWithFoo;
// code which requires "foo" feature
}
#[cfg(not(feature = "foo"))]
fn main() {
// empty main function for when "foo" is disabled
}