クレート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でカバーされているので、これを支持して終了します。
最も参考になるコメント
また、機能と(オプションの?)依存関係が同じ名前空間を共有していることは混乱を招きます。