#[derive(Debug)] enum UsState { NY, VA, NC, } enum Coin { Penny, Nickel, Dime, Quarter(UsState), } impl Coin { fn value_in_cents(self) -> u32 { match self { Coin::Penny => { println!("lucky penny"); 1 }, Coin::Nickel => 5, Coin::Dime => 10, Coin::Quarter(state) => { println!("State quarter from {:?}", state); 25 }, } } } fn plus_one(x: Option) -> Option { match x { None => None, Some(i) => Some(i + 1), } } fn main() { let five = Some(5); let six = plus_one(five); let none = plus_one(None); }