Versão de importação da dependência que outra dependência requer [duplicar]
Tenho duas caixas X
e Z
quero usar as duas, mas X
depende Z
de de alguma versão específica. Por exemplo, mongodb depende de tokio 0.2 e eu estava usando tokio 0.3.
X
não reexporta, Z
então (acho) que tenho que especificar manualmente Z
em Cargo.toml
. Se eu especificar a versão errada, ele pode falhar. Como posso saber de carga para usar qualquer versão do Z
que X
requer?
Respostas
Cargo tem algum recurso de resolução de versão de dependência automática. Você deve ser capaz de especificar quaisquer requisitos de versão de Z
que precisa e o cargo descobrirá como escolher a versão correta para (potencialmente) usar em seu código e X
. Isso pressupõe que ambas as caixas usam corretamente o controle de versão semântico.
Se X
não expor de Z
forma alguma, você realmente não precisa usar a mesma versão do Z
. Se você usar uma versão principal diferente de Z
que X
, o Cargo usará apenas as duas versões de Z
, uma para você e outra para X
.
Veja os comentários de alexcrichton sobre isso para mais detalhes.