Каждая Rust программа или библиотека является crate (крейтом).
Каждый крейт (crate) сделан из иерархии модулей (modules), которые могут быть программами или библиотекой.
Каждый крейт имеет корневой модуль (root module).
Модуль содержит глобальные переменные, функции, структуры, типажи и даже другие модули!
В Rust нет "1 в 1" отображения файлов на древовидную, иерархическую структуру модуля. Мы сами должны создать дерево модулей явным образом "в ручную" в вашем коде.