切换依赖的板条箱功能的功能

Feature to toggle dependent crate features

我对 Rust 有点陌生,运行 遇到了一个问题,我想为我的 crate 创建一个功能,指定应该包含依赖 crate 的哪些功能。

更具体地说,我正在使用 image-rs crate,defines features 库应支持哪些图像格式。

我想要我的 crate 的一个特性,它指定编译 image-rs crate 的附加图像格式特性。例如:

# Cargo.toml
[dependencies]
image = { version = "^0.23.6", features = ["png", "jpeg"] }

[features]
# I dont know the syntax to include image in my feature with specific image crate featres.
extra-image-formats = [ "image {features = [jpeg, png, gif, webp]}" ]

支持吗?那会很好;我希望默认包括来自 image-rs 箱子的常用图像格式,但选择加入更多图像格式(由于所有额外的解码器和编码器,以更大的二进制文件和更长的编译为代价)。

提前致谢!

cargo book中所述,您可以使用crate/feature来引用依赖项的功能。因此,您的示例将如下所示:

# Cargo.toml
[dependencies]
image = { version = "^0.23.6", features = ["png", "jpeg"] }

[features]
extra-image-formats = [ "image/jpeg", "image/png", "image/gif", "image/webp" ]