Modules and Visibility
Use Alias
Importing a Name
use brings a path into scope, and as can rename it locally.
Program
Play the program to choose an hour count and call an imported function through its alias.
use_alias.rs
Replay: real traced execution (multi-file project)
mod units {
pub fn minutes(hours: i32) -> i32 {
hours * 60
}
}
use units::minutes as to_minutes;
fn main() {
let hours = 2;
let total = to_minutes(hours);
println!("{total}");
}
mod units {
pub fn minutes(hours: i32) -> i32 {
hours * 60
}
}
use units::minutes as to_minutes;
fn main() {
let hours = 1;
let total = to_minutes(hours);
println!("{total}");
}
mod units {
pub fn minutes(hours: i32) -> i32 {
hours * 60
}
}
use units::minutes as to_minutes;
fn main() {
let hours = 3;
let total = to_minutes(hours);
println!("{total}");
}
hours ← 2
9fn main() {10 let hour→ 2s = 2; //@hours=2, 1, 311 let total = to_minutes(hour2s);12 println!("{total}");fn minutes(hours: i32) -> i32
1mod units {2 pub fn minutes(hours: i32) -> i32 {3 hour2s * 604 }5}total ← 120
10 let hours = 2; //@hours=2, 1, 311 let tota→ 120l = to_minutes(hour2s);12 println!("{total}");13}output120
hours ← 1
9fn main() {10 let hour→ 1s = 1;11 let total = to_minutes(hour1s);12 println!("{total}");fn minutes(hours: i32) -> i32
1mod units {2 pub fn minutes(hours: i32) -> i32 {3 hour1s * 604 }5}total ← 60
10 let hours = 1;11 let tota→ 60l = to_minutes(hour1s);12 println!("{total}");13}output60
hours ← 3
9fn main() {10 let hour→ 3s = 3;11 let total = to_minutes(hour3s);12 println!("{total}");fn minutes(hours: i32) -> i32
1mod units {2 pub fn minutes(hours: i32) -> i32 {3 hour3s * 604 }5}total ← 180
10 let hours = 3;11 let tota→ 180l = to_minutes(hour3s);12 println!("{total}");13}output180
use
`use units::minutes` imports a path into the current scope.
alias
`as to_minutes` gives the imported function a local name.
scope
After the `use`, `main` can call `to_minutes(hours)` directly.