Тема |
Описание |
Доп. |
|---|---|---|
По мере развития вашего проекта может возникнуть ситуация, когда библиотечный крейт будет становиться все больше, и вы захотите разделить ваш пакет на несколько библиотечных крейтов. Cargo предоставляет функциональность под названием workspaces, которая помогает управлять несколькими взаимосвязанными пакетами, которые разрабатываются в тандеме Workspace (Рабочее пространство) - представляет собой набор пакетов, которые разделяют те же Cargo.lock и выходной каталог. У нас будет рабочее пространство, содержащее двоичную и две библиотеки. Бинарный файл, который будет обеспечивать основную функциональность, будет зависеть от двух библиотек. Одна библиотека предоставит add_one функцию, а вторая - add_two функцию. |
||
File Cargo.toml:
File add_one/src/lib.rs:
File add_one/Cargo.toml:
File adder/src/main.rs:
File adder/Cargo.toml:
Запуск:
|
||
Использование рабочего пространства [workspace] |
Рабочее пространство является набором пакетов, которые совместно используют один и тот же файл Cargo.lock и папку target для хранения конечных программных продуктов (будь то бинарные файлы или библиотеки)
Для связи крейтов добавьте им зависимости Файл: adder/Cargo.toml
Запуск конкретного крейта
Если мы хотим использовать внешнюю зависимость, то следует добавить ее во все Cargo.toml используемых крейтов и эта зависимость будет в общем Cargo.lock в единственном варианте (одна версия на всех) |
|