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();
}