Rust,如何配置库的工作区?

e1xvtsh3  于 2023-05-29  发布在  其他
关注(0)|答案(1)|浏览(148)

我有一个工作区,让我们调用my_workspacemy_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();
}

我很抱歉,如果这是一个菜鸟问题,但我找不到任何信息,在货物的文件,将阐明如何实现这一点。

oknwwptz

oknwwptz1#

似乎rust不允许我将工作区作为“主”项目,所以我通过添加一个新的crate来解决,该crate导入所有工作区成员,并使用Cargo.toml中的features键和lib.rs中的#[cfg(feature)]注解为每个成员重新导出它们。

相关问题