enum OptionalInt { Nothing, Int(i32) } fn generate_optional(v: i32) -> OptionalInt { if v == 0 { OptionalInt::Nothing } else { OptionalInt::Int(v) } } fn display(v: OptionalInt) { /* if let OptionalInt::Int(iv) = v { println!("Value: {}", iv) } else { println!("No value") } */ match v { OptionalInt::Int(iv) => println!("Value: {}", iv), OptionalInt::Nothing => println!("No value"), } } fn main() { let a = generate_optional(0); let b = generate_optional(1); display(a); display(b) }