Компактный match в Rust
match часто используется для работы с енумами, посмотрим на такой пример:
enum NextStep { TurnLeft, TurnRight } fn main() { let next_step = NextStep::TurnLeft; match next_step { NextStep::TurnLeft => println!("turn left"), NextStep::TurnRight => println!("turn right"), } }
Это может быть не очевидно, но енумы в Rust можно принести в текущее пространство имен, это позволяет сделать код более компактным:
// ... use NextStep::*; match next_step { TurnLeft => println!("turn left"), TurnRight => println!("turn right"), } // ...
Ну, а чтобы ограничить эффект только одним match, придется задать границы используя {} для дополнительного блока:
// ... { use NextStep::*; match next_step { // ... } } // ...
