Cargo - это, прежде всего, менеджер пакетов.Таким образом, основная роль пакета заключается в определении библиотеки.
Когда мы используем ящик в качестве зависимости, мы указываем только имя пакета в нашем Cargo.toml
.Поскольку может быть не более одной библиотеки, Cargo не нужно указывать, какую из них использовать.Если бы было разрешено определять несколько библиотек в одном пакете, то нам нужно было бы указать способ определения зависимостей между ними, чтобы у вас было два способа объявить зависимости (внешние пакеты и внутренние ящики), создав системуболее сложный.
С другой стороны, добавление зависимости, которая не предоставляет библиотеку, не имеет смысла, по крайней мере, с Cargo, поскольку Cargo заботится только о цели библиотеки в этом контексте.Таким образом, нет никаких оснований ограничивать другие типы целей (двоичные файлы, примеры, тесты и т. Д.) Одним.