Ієрархія файлової системи
Пропущення вмісту модуля призведе до того, що Rust шукатиме його в іншому файлі:
Це повідомляє Rust, що вміст модуля garden
знаходиться в src/garden.rs
. Так само модуль garden::vegetables
можна знайти на src/garden/vegetables.rs
.
Корінь crate
знаходиться в:
src/lib.rs
(для крейта бібліотеки)src/main.rs
(для крейта виконуваного файлу)
Модулі, визначені у файлах, також можна документувати за допомогою “внутрішніх коментарів документа”. Вони документують елемент, який їх містить – у цьому випадку це модуль.
Speaker Notes
This slide should take about 5 minutes.
-
До 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.