Visibilidade
MĂłdulos sĂŁo limitadores de privacidade:
- Itens do módulo são privados por padrão (ocultam detalhes de implementação).
- Itens paternos e fraternos sĂŁo sempre visĂveis.
- Em outras palavras, se um item Ă© visĂvel no mĂłdulo
foo
, ele Ă© visĂvel em todos os descendentes defoo
.
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.
- Use a palavra reservada
pub
para tornar mĂłdulos pĂșblicos.
Adicionamente, existem especificadores pub(...)
avançados para restringir o escopo de visibilidade pĂșblica.
- Veja a ReferĂȘncia Rust.
- A configuração de visibilidade
pub(crate)
Ă© um padrĂŁo comum. - Menos comum, vocĂȘ pode dar visibilidade para um caminho especĂfico.
- Em todo caso, a visibilidade deve ser concedida a um mĂłdulo ancestral (e a todos os seus descendentes).