Modules Basics
7 examples - 5 basic, 2 intermediate - for Rust module system.
Prerequisites
Basic Examples
1. Inline Module
mod math {
pub fn add(a: i32, b: i32) -> i32 { a + b }
}
fn main() { println!("{}", math::add(1, 2)); }2. File Module
// lib.rs: mod config;
// config.rs: pub fn port() -> u16 { 8080 }mod config; loads config.rs or config/mod.rs.
3. pub Visibility
mod api {
pub fn ping() {}
fn secret() {}
}Only ping visible outside api.
4. Nested Modules
mod outer {
pub mod inner { pub fn f() {} }
}Path: outer::inner::f.
5. use Import
use std::collections::HashMap;Related: use & Paths
Intermediate Examples
6. mod.rs Directory
src/
lib.rs
models/
mod.rs
user.rs
mod user; in models/mod.rs.
7. Crate Root
Binary: main.rs. Library: lib.rs - crate root module.
Related: Modules & Crates Best Practices
Stack versions: This page was written for Rust 1.97.0 (edition 2024), Tokio 1.x, Axum 0.8, serde 1.0, sqlx 0.8, clap 4, and Polars 0.46+.