如何让一个可选依赖项启用另一个可选依赖项 Rust

Joh*_*hnT 5 rust rust-cargo

我正在用 Rust 创建一个库,并且我有不同的功能,用户可以通过可选的依赖项启用这些功能。diesel我想要它,所以如果启用了依赖项,那么diesel-derive-enum也应该启用它。

[dependencies]
diesel = {version = "1.4.6", optional = true, features = ["postgres", "chrono"]}
diesel-derive-enum = {version = "1.1.1", optional = true, features = ["postgres"]}
Run Code Online (Sandbox Code Playgroud)

And*_*sen 11

从 Rust 开始1.60.0,随着命名空间依赖关系的稳定,您现在可以使用 features 来执行此操作,而无需添加不同名称的功能dep:

[dependencies]
diesel = {version = "1.4.6", optional = true, features = ["postgres", "chrono"]}
diesel-derive-enum = {version = "1.1.1", optional = true, features = ["postgres"]}

[features]
diesel = ["dep:diesel", "dep:diesel-derive-enum"]
Run Code Online (Sandbox Code Playgroud)

现在,您可以简单地传递--features diesel给 Cargo 来启用依赖项dieseldiesel-derive-enum可选依赖项。

有关更多详细信息,请参阅 Cargo Book 的可选功能部分。