Modules
Intermédiairesrc/
├── main.rs
├── config.rs
└── db/
├── mod.rs (ou db.rs à côté du dossier)
└── users.rs
// main.rs
mod config; // déclare le module (charge src/config.rs)
mod db;
use crate::db::users::Utilisateur;
use std::collections::HashMap;
use std::io::{self, Read, Write}; // imports groupés
fn main() {
let cfg = config::charger();
}
// config.rs
pub struct Config {
pub port: u16, // pub : champ visible depuis l'extérieur
secret: String, // privé par défaut
}
pub fn charger() -> Config { /* ... */ }
Visibilité#
| Mot-clé | Visible depuis |
|---|---|
| (rien) | le module courant et ses enfants |
pub | partout |
pub(crate) | tout le crate |
pub(super) | le module parent |