我想在crate A
中添加一个相对较小的功能,这需要依赖于第二个crate B
。 A
的维护者合理地反对为一个小的,虽然可能有用的功能引入一个全新的依赖。
处理此问题的最佳方法是什么?我能想到的选择是:
A
和B
) 1 似乎不是最理想的,因为它是一个与A
非常相关的小功能,而且必须特别依赖第三个箱子似乎很烦人,但 2 似乎差不多......
当并且只有当crate明确地依赖于A
和B
时,是否有某种方法可以编译我的次要功能?
答案 0 :(得分:3)
这是exactly the case optional features解决:
货物支持允许表达的功能:
- 条件编译选项(可通过
cfg
属性使用);- 可选依赖项,可增强程序包,但不是必需的;和
- 可选依赖项的集群,例如
postgres
,其中包含postgres
包,postgres-macros
包,以及 可能是其他包(如开发时模拟库, 调试工具等。)。
不幸的是,你似乎已经驳回了这个选项而没有任何解释为什么它“差不多”,所以......我想你唯一的选择是分叉箱子并应用你的改变。