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

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

我可以忽略主要功能:

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

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

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

此外,由于主要隐藏没有该功能,货物测试有此错误:

error: main function not found

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

最佳答案 更具体地使用#[cfg]指令,在foo启用时提供main(),在foo不启用时提供main():

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
}
点赞