Ogni programma o libreria Rust è un crate.
Ogni crate è composto da una gerarchia di moduli.
Ogni crate ha un modulo radice (root module).
Un modulo può contenere variabili globali, funzioni, struct, trait o persino altri moduli!
In Rust non esiste una corrispondenza uno a uno tra i file e la gerarchia ad albero dei moduli. Dobbiamo costruire l'albero dei moduli esplicitamente, a mano, nel nostro codice.
