Ієрархія файлової системи
Пропущення вмісту модуля призведе до того, що Rust шукатиме його в іншому файлі:
mod garden;
Це повідомляє Rust, що вміст модуля garden знаходиться в src/garden.rs. Так само модуль garden::vegetables можна знайти на src/garden/vegetables.rs.
Корінь crate знаходиться в:
src/lib.rs(для крейта бібліотеки)src/main.rs(для крейта виконуваного файлу)
Модулі, визначені у файлах, також можна документувати за допомогою “внутрішніх коментарів документа”. Вони документують елемент, який їх містить – у цьому випадку це модуль.
//! Цей модуль реалізує сад, включаючи високоефективну реалізацію //! пророщування. // Ре-експорт типів з цього модуля. pub use garden::Garden; pub use seeds::SeedPacket; /// Посіяти задані пакети насіння. pub fn sow(seeds: Vec<SeedPacket>) { todo!() } /// Збір врожаю в саду, який вже готовий. pub fn harvest(garden: &mut Garden) { todo!() }
- 
До Rust 2018 модулі мали розташовуватися в
module/mod.rsзамістьmodule.rs, і це все ще робоча альтернатива для випусків після 2018 року. - 
Основною причиною введення
filename.rsяк альтернативиfilename/mod.rsбуло те, що багато файлів з назвамиmod.rsважко розрізнити в IDE. - 
Більш глибоке вкладення може використовувати папки, навіть якщо основним модулем є файл:
src/ ├── main.rs ├── top_module.rs └── top_module/ └── sub_module.rs - 
Місце, де Rust шукатиме модулі, можна змінити за допомогою директиви компілятора:
#[path = "some/path.rs"] mod some_module;Це корисно, наприклад, якщо ви хочете розмістити тести для модуля у файлі з іменем
some_module_test.rs, подібно до конвенції у Go.