如何让一个可选依赖项启用另一个可选依赖项生锈
How to have an optional dependency enable another optional dependency rust
我正在用 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"]}
您可以使用 cargo features
启用多个可选依赖项。
这是一个例子:
[dependencies]
cli-color = { version = "0.1.20", optional = true }
clap= { version = "0.2.3", optional = true }
[features]
cli = ["cli-color", "clap"]
也是来自 tokio
的真实示例。
https://github.com/tokio-rs/tokio/blob/master/tokio/Cargo.toml
更多详细信息,请参阅官方 Rust 文档:
https://doc.rust-lang.org/cargo/reference/features.html#the-features-section
从 Rust 1.60.0
开始,使用 stabilization of namespaced dependencies,您现在可以使用 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"]
现在您只需将 --features diesel
传递给 cargo 即可启用 diesel
和 diesel-derive-enum
可选依赖项。
有关详细信息,请参阅 Optional Features 的 Cargo Book 部分。
我正在用 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"]}
您可以使用 cargo features
启用多个可选依赖项。
这是一个例子:
[dependencies]
cli-color = { version = "0.1.20", optional = true }
clap= { version = "0.2.3", optional = true }
[features]
cli = ["cli-color", "clap"]
也是来自 tokio
的真实示例。
https://github.com/tokio-rs/tokio/blob/master/tokio/Cargo.toml
更多详细信息,请参阅官方 Rust 文档: https://doc.rust-lang.org/cargo/reference/features.html#the-features-section
从 Rust 1.60.0
开始,使用 stabilization of namespaced dependencies,您现在可以使用 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"]
现在您只需将 --features diesel
传递给 cargo 即可启用 diesel
和 diesel-derive-enum
可选依赖项。
有关详细信息,请参阅 Optional Features 的 Cargo Book 部分。