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