Видимість
Модулі є межею конфіденційності:
- Елементи модуля є приватними за замовчуванням (приховує деталі реалізації).
 - Батьківські та споріднені елементи завжди видно.
 - Іншими словами, якщо елемент видимий у модулі 
foo, він видимий у всіх нащадкахfoo. 
mod outer { fn private() { println!("outer::private"); } pub fn public() { println!("outer::public"); } mod inner { fn private() { println!("outer::inner::private"); } pub fn public() { println!("outer::inner::public"); super::private(); } } } fn main() { outer::public(); }
This slide should take about 5 minutes. 
                    - Використовуйте ключове слово 
pub, щоб зробити модулі загальнодоступними. 
Крім того, існують розширені специфікатори pub(...) для обмеження обсягу публічної видимості.
- Перегляньте довідник Rust.
 - Налаштування видимості 
pub(crate)є типовим шаблоном. - Рідше ви можете надати видимість певному шляху.
 - У будь-якому випадку видимість повинна бути надана модулю-предпопереднику (і всім його нащадкам).