如何根据功能禁用整个示例?

时间:2016-06-13 06:25:25

标签: rust

My Rust项目的示例仅与某些功能相关。

我可以忽略主要功能:

#[cfg(feature = "foo")]
fn main() {

但是,当我运行cargo test时,依赖于该功能的其他语句会导致错误。所以我必须在函数上使用一些cfg属性语句,并使用语句来禁用依赖于该功能的代码。

有没有办法根据功能配置忽略整个示例文件?

此外,由于在没有该功能的情况下隐藏了main,cargo test会出现此错误:

  

错误:未找到主要功能

所以这不是一个好的解决方案。

1 个答案:

答案 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
}