Definición
Para dividir funcionalidad (como namespaces en c++) en este caso veamos cuando es en el mismo archivo podemos usar mod de la siguiente forma
mod soludos {
pub fn hola() {
println!("Hola tanto tiempo");
}
}
fn main() {
saludos::hola();
}por default, todo lo que esta dentro de un modulo es privado, y podemos hacerlo publico con pub
En el caso que este en otro archivo
// saludos.rs
mod soludos {
pub fn hola() {
println!("Hola tanto tiempo");
}
}// main.rs
mod saludos;
fn main() {
saludos::hola();
}
// o alternativamente
mod saludos;
use saludos::hola;
fn main() {
hola();
}En el caso que este en subdirectorios
// frases/mod.rs -> es necesario que se llame mod.rs
pub mod saludos; // tiene que ser el mismo nombre que el archivo siguiente// frases/saludos.rs
pub fn hola() {
println!("Hola tanto tiempo");
}// main.rs
mod frases; // el nombre de la carpeta
fn main() {
frases::saludos::hola();
}