Dependencies 如果相关功能被禁用,如何跳过依赖项

Dependencies 如果相关功能被禁用,如何跳过依赖项,dependencies,rust,conditional-compilation,rust-cargo,rust-crates,Dependencies,Rust,Conditional Compilation,Rust Cargo,Rust Crates,假设我有一个板条箱,它仅在启用了#[cfg(feature=“glob”)]时才依赖于glob板条箱。此外,此功能在默认情况下被禁用。默认情况下,如何跳过glob板条箱的下载和编译 # Cargo.toml ... [features] default = [] [dependencies] glob = "0.2" ... 和源代码: # lib.rs .. several uses #[cfg(feature = "glob")] extern crate glob; ... a l

假设我有一个板条箱,它仅在启用了
#[cfg(feature=“glob”)]
时才依赖于
glob
板条箱。此外,此功能在默认情况下被禁用。默认情况下,如何跳过
glob
板条箱的下载和编译

# Cargo.toml
...
[features]
default = []

[dependencies]
glob = "0.2"
...
和源代码:

# lib.rs
.. several uses

#[cfg(feature = "glob")]
extern crate glob;

... a lot of code that doesn't use glob crate.

#[cfg(feature = "glob")]
impl Foo for Bar { 
    // only this code uses glob crate 
}

glob
依赖项必须标记为可选:

[dependencies]
glob = { version = "0.2", optional = true }