Cada programa ou biblioteca do Rust é uma crate.
Cada crate é feita de uma hierarquia de módulos.
Cada crate tem um módulo raiz.
Um módulo pode conter variáveis globais, funções, structs, traits ou até mesmo outros módulos!
No Rust não há um mapeamento 1 para 1 de arquivos para a hierarquia da árvore de módulos. Devemos construir a árvore de módulos explicitamente à mão em nosso código.