use, super, self
Модуль може залучати символи з іншого модуля до області видимості за допомогою use. Зазвичай ви бачите щось подібне у верхній частині кожного модуля:
use std::collections::HashSet; use std::process::abort;
Шляхи
Шляхи вирішуються таким чином:
- 
Як відносний шлях:
fooабоself::fooпосилається наfooв поточному модулі,super::fooпосилається наfooу батьківському модулі.
 - 
Як абсолютний шлях:
crate::fooпосилається наfooв корені поточного крейту,bar::fooпосилається наfooв крейтіbar.
 
- 
Зазвичай символи “реекспортуються” коротшим шляхом. Наприклад, файл
lib.rsверхнього рівня у крейті може матиmod storage; pub use storage::disk::DiskStorage; pub use storage::network::NetworkStorage;зробити
DiskStorageіNetworkStorageдоступними для інших крейтів зручним і коротким шляхом. - 
Здебільшого використовувати
useпотрібно лише з тими елементами, які з’являються в модулі. Однак, щоб викликати будь-які методи, трейт повинен бути в області видимості, навіть якщо тип, що реалізує цей трейт, вже знаходиться в області видимості. Наприклад, для використання методуread_to_stringна типі, що реалізує трейтRead, вам потрібноuse std::io::Read. - 
Оператор
useможе мати символ підстановки:use std::io::*. Це не рекомендується, оскільки незрозуміло, які саме елементи імпортуються, а вони можуть змінюватися з часом.