Можно ли указать несколько версий зависимостей? - PullRequest
1 голос
/ 27 мая 2019

Я использую библиотеку, которая ломается в зависимости от того, какие другие ящики я использую. Обходной путь - понизить несколько зависимостей и сохранить локальную версию библиотеки.

Есть ли способ указать в Cargo, что для моей библиотеки допустимы две версии MyLibraryDep?

Это работает, если я добавлю MyLibraryDep = {version = "*"} в мой Cargo.toml. Так как Cargo будет автоматически исправлять зависимости, но crates.io этого не позволяет.

Пример:

  • При использовании MyLibrary и LibraryA я должен использовать MyLibraryDep v0.1.0 в MyLibrary

  • При использовании MyLibrary и LibraryB я должен использовать MyLibraryDep v0.2.0 в MyLibrary

1 Ответ

4 голосов
/ 27 мая 2019

Как указано в Книге грузов, вы можете использовать требования неравенства и несколько требований, объединенных для формирования диапазона допустимых версий.

MyLibraryDep = {version = ">=0.1.0, <=0.2.0"}

Такое требование также позволит Cargoвыберите подходящую версию и должно быть разрешено crates.io.

...