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
}