Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Пакет, крэйт, модуль

Теперь, когда мы знаем, что в одном проекте может быть и библиотека, и несколько исполняемых файлов, мы наконец можем осознанно ответить на вопрос “что такое крэйт?”.

Всё просто: крэйт — это единица компиляции. И, учитывая, как компилятор Rust обрабатывает модули (сначала включает модули, а потом компилирует один большой файл), можно говорить, что крэйт — это либо библиотека, либо исполняемый файл.

Подытожим:

Пакет — это проект, который мы создаём при помощи cargo new. У нас даже главная секция в Cargo.toml называется [package].

Пакет содержит один или более крэйтов, которые соответствуют файлу lib.rs и главным файлам для исполняемых программ: src/main.rs и src/bin/*.rs.

С модулями мы уже хорошо знакомы из главы Модули. Это просто блоки кода на Rust обрамлённые в секцию mod модуль {}, или файлы с исходным кодом (которым суждено быть включёнными в другие файлы при сборке крэйта).