在 crate X 中,具有可选的依赖项 A 和 X 的强制依赖项 B,与前者关联的特性 A 不能启用 B 中具有相同名称的特性。这意味着必须引入一个具有不同名称的附加特性,使得事情乱。
用例:
我正在向 rust-encoding 添加 SIMD 优化。 我希望将该功能命名为“simd”并在内部板条箱编码类型中启用相同的功能。
[features]
simd = ["encoding-types/enable-simd"]
[dependencies.simd]
git = "https://github.com/nox/simd"
rev = "438780ca236b1ed2caf032edebda9c9362eaabc6"
optional = true
这是行不通的,因为你不能有一个可选的依赖项和一个特性具有相同的名称。
我还发现功能和(可选?)依赖项共享相同的命名空间令人困惑。
是的,现在您必须选择一个单独的功能名称来激活功能和依赖项,否则尽管这已包含在 #1286 中,所以我将关闭以支持它。
最有用的评论
我还发现功能和(可选?)依赖项共享相同的命名空间令人困惑。