Versão de importação da dependência que outra dependência requer [duplicar]

Aug 19 2020

Tenho duas caixas Xe Zquero usar as duas, mas Xdepende Zde de alguma versão específica. Por exemplo, mongodb depende de tokio 0.2 e eu estava usando tokio 0.3.

Xnão reexporta, Zentão (acho) que tenho que especificar manualmente Zem Cargo.toml. Se eu especificar a versão errada, ele pode falhar. Como posso saber de carga para usar qualquer versão do Zque Xrequer?

Respostas

2 Emoun Aug 19 2020 at 09:03

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 Zque 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 Xnão expor de Zforma alguma, você realmente não precisa usar a mesma versão do Z. Se você usar uma versão principal diferente de Zque 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.