如何判断每个板条箱有哪些 "features" 可用?
How to tell what "features" are available per crate?
是否有标准方法来确定给定板条箱的可用功能?
我正在尝试阅读 Postgres 时区,this 说要使用 crate postgres = "0.17.0-alpha.1"
crate 的 with-time
或 with-chrono
功能。
当我在 Cargo.toml 中尝试此操作时:
[dependencies]
postgres = { version = "0.17.0-alpha.1", features = ["with-time"] }
我收到这个错误:
error: failed to select a version for `postgres`.
... required by package `mypackage v0.1.0 (/Users/me/repos/mypackage)`
versions that meet the requirements `^0.17.0-alpha.1` are: 0.17.0, 0.17.0-alpha.2, 0.17.0-alpha.1
the package `mypackage` depends on `postgres`, with features: `with-time` but `postgres` does not have these features.
此外,crate page for postgres 0.17.0 对这些功能只字未提,所以我什至不知道是否应该支持它们。
好像会有on docs.rs的东西?
查看可用功能的唯一保证方法是查看箱子的 Cargo.toml。这通常意味着您需要导航到项目的存储库,找到您感兴趣的版本的正确文件,然后阅读它。
您主要是在查找 [features]
部分,但也在查找标记为 optional = true
、optional dependencies count as an implicit feature flag.
的任何依赖项
不幸的是,没有要求 crate 作者放置任何关于每个功能标志的作用的文档。好的箱子会在一个或多个位置记录它们的功能标志:
- 如 Cargo.toml
中的评论
- 他们的自述文件
- 他们的文档
除了查看 Cargo.toml,上传到 docs.rs 的 crate 将 show what feature flags exist。
crates.io issue #465 建议也将功能列表放在 crate 的页面上。
另请参阅:
对于 postgres crate,我们可以 start at crates.io, then click "repository" to go to the repository. We then find the right tag (postgres-v0.17.0
), then read the Cargo.toml:
[features]
with-bit-vec-0_6 = ["tokio-postgres/with-bit-vec-0_6"]
with-chrono-0_4 = ["tokio-postgres/with-chrono-0_4"]
with-eui48-0_4 = ["tokio-postgres/with-eui48-0_4"]
with-geo-types-0_4 = ["tokio-postgres/with-geo-types-0_4"]
with-serde_json-1 = ["tokio-postgres/with-serde_json-1"]
with-uuid-0_8 = ["tokio-postgres/with-uuid-0_8"]
我个人使用 cargo-edit 和 cargo-feature 箱子
https://crates.io/crates/cargo-feature
是否有标准方法来确定给定板条箱的可用功能?
我正在尝试阅读 Postgres 时区,this 说要使用 crate postgres = "0.17.0-alpha.1"
crate 的 with-time
或 with-chrono
功能。
当我在 Cargo.toml 中尝试此操作时:
[dependencies]
postgres = { version = "0.17.0-alpha.1", features = ["with-time"] }
我收到这个错误:
error: failed to select a version for `postgres`.
... required by package `mypackage v0.1.0 (/Users/me/repos/mypackage)`
versions that meet the requirements `^0.17.0-alpha.1` are: 0.17.0, 0.17.0-alpha.2, 0.17.0-alpha.1
the package `mypackage` depends on `postgres`, with features: `with-time` but `postgres` does not have these features.
此外,crate page for postgres 0.17.0 对这些功能只字未提,所以我什至不知道是否应该支持它们。
好像会有on docs.rs的东西?
查看可用功能的唯一保证方法是查看箱子的 Cargo.toml。这通常意味着您需要导航到项目的存储库,找到您感兴趣的版本的正确文件,然后阅读它。
您主要是在查找 [features]
部分,但也在查找标记为 optional = true
、optional dependencies count as an implicit feature flag.
不幸的是,没有要求 crate 作者放置任何关于每个功能标志的作用的文档。好的箱子会在一个或多个位置记录它们的功能标志:
- 如 Cargo.toml 中的评论
- 他们的自述文件
- 他们的文档
除了查看 Cargo.toml,上传到 docs.rs 的 crate 将 show what feature flags exist。
crates.io issue #465 建议也将功能列表放在 crate 的页面上。
另请参阅:
对于 postgres crate,我们可以 start at crates.io, then click "repository" to go to the repository. We then find the right tag (postgres-v0.17.0
), then read the Cargo.toml:
[features]
with-bit-vec-0_6 = ["tokio-postgres/with-bit-vec-0_6"]
with-chrono-0_4 = ["tokio-postgres/with-chrono-0_4"]
with-eui48-0_4 = ["tokio-postgres/with-eui48-0_4"]
with-geo-types-0_4 = ["tokio-postgres/with-geo-types-0_4"]
with-serde_json-1 = ["tokio-postgres/with-serde_json-1"]
with-uuid-0_8 = ["tokio-postgres/with-uuid-0_8"]
我个人使用 cargo-edit 和 cargo-feature 箱子 https://crates.io/crates/cargo-feature