Na grade X, com uma dependência opcional A e uma dependência obrigatória B de X, o recurso A associado ao primeiro não pode habilitar um recurso com o mesmo nome em B. Isso significa que um recurso adicional com um nome diferente deve ser introduzido, tornando as coisas confuso.
Caso de uso:
Estou adicionando otimizações SIMD à codificação de ferrugem. Eu quero que o recurso seja chamado de "simd" e habilite o mesmo recurso nos tipos de codificação de grade internos.
[features]
simd = ["encoding-types/enable-simd"]
[dependencies.simd]
git = "https://github.com/nox/simd"
rev = "438780ca236b1ed2caf032edebda9c9362eaabc6"
optional = true
Isso não funcionará porque você não pode ter uma dependência opcional e um recurso com o mesmo nome.
Também achei confuso que recursos e dependências (opcionais?) compartilhem o mesmo namespace.
Sim, por enquanto você terá que escolher um nome de recurso separado para ativar recursos e dependências, caso contrário, embora isso seja coberto pelo #1286, vou fechar a favor disso.
Comentários muito úteis
Também achei confuso que recursos e dependências (opcionais?) compartilhem o mesmo namespace.