我正在寻找一种方法,根据依赖项的功能选择提供特殊功能。
有一个名为crate-a
的库,其中包含feature-a
和feature-b
两个功能。我想创建一个新的库crate-b
,该库依赖于crate-a
。
二进制文件crate-c
同时依赖于crate-a
和crate-b
,并且为crate-a
指定了功能。
我想根据对crate-a
所选的功能集,提供crate-b
函数的不同实现方式。
我尝试了这种不起作用的方法:
// at crate-b/src/lib.rs
#[cfg(not(feature = "crate-a/feature-a"))]
pub fn greet() {
println!("General impl");
}
#[cfg(feature = "crate-a/feature-a")]
pub fn greet() {
println!("Feature-A impl");
}
有没有办法从 crate-b
检查 crate-a
的功能?
我控制着 crate-a
和 crate-b
。 即使采用应该在 crate-a
中更改某些内容的方法也适用于我。