我有一个工作区,让我们调用my_workspace
。my_workspace
有一系列相关的小库,但每个库都有自己的职责。类似于:
[workspace]
members = [
"my_lib_1",
"my_lib_2",
"my_lib_3",
...
]
和my_workspace
的结构如下:
|my_lib_1/
|my_lib_2/
|my_lib_2/
|Cargo.toml
...
此工作区不导出任何仅二进制文件的库。
我如何配置我的Cargo.toml
将每个成员视为一个功能?这样使用:
# package that use the lib
[dependencies]
my_workspace = { ... , features = ["my_lib_1"] }
// inside of the package that use `my_workspace`
use my_workspace::my_lib_1;
fn do_something() {
my_lib_1::whatever_that_exposes_this_lib();
}
我很抱歉,如果这是一个菜鸟问题,但我找不到任何信息,在货物的文件,将阐明如何实现这一点。
1条答案
按热度按时间oknwwptz1#
似乎rust不允许我将工作区作为“主”项目,所以我通过添加一个新的crate来解决,该crate导入所有工作区成员,并使用
Cargo.toml
中的features
键和lib.rs
中的#[cfg(feature)]
注解为每个成员重新导出它们。