use

useを使用すれば変数のスコープを絶対名で指定する必要がなくなります。

// 使用されていないコードよる警告を隠すアトリビュート
#![allow(dead_code)]

enum Stage {
    Beginner,
    Advanced,
}

enum Role {
    Student,
    Teacher,
}

fn main() {
    // `use`することで絶対名でなくとも使用可能になります。
    use crate::Stage::{Beginner, Advanced};
    // `Role`の中の名前をすべて`use`します。
    use crate::Role::*;

    // `use`しているため、`Stage::Beginner`と同じです。
    let stage = Beginner;
    // `Role::Student`と同じ
    let role = Student;

    match stage {
        // `use`しているのでスコープを明示していません。
        Beginner => println!("Beginners are starting their learning journey!"),
        Advanced => println!("Advanced learners are mastering their subjects..."),
    }

    match role {
        // こちらも同じ
        Student => println!("Students are acquiring knowledge!"),
        Teacher => println!("Teachers are spreading knowledge!"),
    }
}

参照

match, use