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.

hours
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}");
}
  1. hours ← 2

    9fn main() {10    let hour→ 2s = 2; //@hours=2, 1, 311    let total = to_minutes(hour2s);12    println!("{total}");
  2. fn minutes(hours: i32) -> i32

    1mod units {2    pub fn minutes(hours: i32) -> i32 {3        hour2s * 604    }5}
  3. total ← 120

    10    let hours = 2; //@hours=2, 1, 311    let tota→ 120l = to_minutes(hour2s);12    println!("{total}");13}
    output120
  1. hours ← 1

    9fn main() {10    let hour→ 1s = 1;11    let total = to_minutes(hour1s);12    println!("{total}");
  2. fn minutes(hours: i32) -> i32

    1mod units {2    pub fn minutes(hours: i32) -> i32 {3        hour1s * 604    }5}
  3. total ← 60

    10    let hours = 1;11    let tota→ 60l = to_minutes(hour1s);12    println!("{total}");13}
    output60
  1. hours ← 3

    9fn main() {10    let hour→ 3s = 3;11    let total = to_minutes(hour3s);12    println!("{total}");
  2. fn minutes(hours: i32) -> i32

    1mod units {2    pub fn minutes(hours: i32) -> i32 {3        hour3s * 604    }5}
  3. 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.