Suppose, I have the following enum
type in Rust.
enum Expr {
Null,
Add(i32, i32),
Sub(i32, i32),
Mul(i32, i32),
Div { dividend: i32, divisor: i32 },
Val(i32),
}
I want to enumerate each element using a for
loop.
Is it possible?
Elements can be enumerated using an extra array.
enum Expr {
Null,
Add(i32, i32),
Sub(i32, i32),
Mul(i32, i32),
Div { dividend: i32, divisor: i32 },
Val(i32),
}
fn main() {
let expressions = [
Expr::Null,
Expr::Add(3, 4),
Expr::Sub(10, 5),
Expr::Mul(6, 2),
Expr::Div { dividend: 15, divisor: 3 },
Expr::Val(42),
];
for expr in &expressions {
match expr {
Expr::Null => println!("Null expression"),
Expr::Add(a, b) => println!("Addition: {} + {}", a, b),
Expr::Sub(a, b) => println!("Subtraction: {} - {}", a, b),
Expr::Mul(a, b) => println!("Multiplication: {} * {}", a, b),
Expr::Div { dividend, divisor } => println!("Division: {} / {}", dividend, divisor),
Expr::Val(value) => println!("Value: {}", value),
}
}
}
However, I don't want to use an extra array.
Is that possible?