enum MyOptionInt { Nothing, Value(i32), } fn print_opt(v: & MyOptionInt) { match v { MyOptionInt::Nothing => println!("Nothing!!!"), MyOptionInt::Value(n) => println!("{}", n), } } fn main() { let v1 = MyOptionInt::Nothing; let mut v2 = MyOptionInt::Value(666); print_opt(&v1); print_opt(&v2); v2 = v1; print_opt(&v2); }