有没有办法查看我的项目中所有依赖于另一个板条箱的板条箱?

Is there a way to see all the crates in my project that optionally depend on another crate?

我正在将 parking_lot 添加到我的项目中,我希望我的依赖项也可以选择使用它来使用它。

例如,我知道 Tokio 有一个功能标志可以启用 parking_lot,但我想找到所有具有相似功能标志的依赖项。

Rust Discord 服务器上的 Yandros 提出了 cargo metadatajq 的组合,以列出对给定包具有可选依赖性的板条箱(本例中为 parking_lot) :

cargo metadata --format-version 1 | jq -c '.packages[] | select(
    .dependencies | any(
        (.name == "parking_lot")
        and
        (.optional == true)
    )
) | .name'