eu tenho jogado com Rust em um Projeto pet e quando eu queria namespace meu código, fiquei preso por um tempo tentando descobrir como fazê-lo. Vindo de Java e Ruby background eu esperava algo como pacotes em Java ou módulos em Ruby, mas não era o caso em Rust. A documentação também não me ajudou. Demorou algum tempo para eu descobrir como funciona. Então, aqui está minha compreensão dos módulos Rust com exemplos simples (Github)
Rust exige que os usuários construam um gráfico de Módulo explícito
a chave é que todos os módulos precisam ser declarados no arquivo raiz(main.rs neste exemplo). Se você tiver submódulos, isso precisará ser declarado em mod.rs arquivo do módulo pai.
o que é mod.rs ?
você pode criar o módulo de duas maneiras, seja um único arquivo ou um arquivo dentro da pasta. Se você estiver indo com a abordagem posterior, O Rust espera que a pasta tenha mod.rs arquivo (hierarquia de arquivos) que você verá mais tarde em um exemplo.
Desde que eu estava olhando para exemplos destes 3 casos de uso, eu pensei que eu poderia adicionar para o mesmo
- módulo Único
- Sub-módulos
- módulos Aninhados
Módulo Único
Se você deseja ter um módulo em um único arquivo, bem, é muito simples.
single_module.rs
principal.rs
Observe que single_module tenha sido declarada em principal.rs ao contrário de algumas outras línguas, onde podemos importá-los.
> Saída:
Im in single module