Импортировать версию зависимости, которая требуется для другой зависимости [дубликат]
У меня два ящика, X
и Z
я хочу использовать оба, но это X
зависит Z
от конкретной версии. Например, mongodb зависит от tokio 0.2, а я использовал tokio 0.3.
X
не реэкспорт, Z
поэтому я (думаю) должен вручную указать Z
в Cargo.toml
. Если я укажу неправильную версию, она может сломаться. Как я могу сказать Cargo, что нужно использовать Z
ту версию, которая X
требуется?
Ответы
Cargo имеет возможность автоматического разрешения версий зависимостей. Вы должны иметь возможность указать любые требования к версии, которые Z
вам нужны, и cargo выяснит, как выбрать правильную версию для (потенциально) использования как в вашем коде, так и в X
. Предполагается, что оба ящика правильно используют семантическое управление версиями.
Если X
никак не раскрывается Z
, вам действительно не нужно использовать ту же версию Z
. Если вы используете другую основную версию , Z
чем X
, Cargo будет просто использовать обе версии Z
, один раз для вас , и один раз X
.
См . Комментарии alexcrichton по этому поводу для получения более подробной информации.