#[derive(Debug)] enum UsState { Alabama, Alaska, } enum Coin { Penny, Nickle, Dime, Quarter(UsState), } fn value_in_cents(coin: Coin) -> u8 { match coin { Coin::Penny => { println!("Lucky penny!"); 1 }, Coin::Nickle => 5, Coin::Dime => 10, Coin::Quarter(state) => { println!("State quarter from: {:?}!", state); 25 }, } } fn main() { value_in_cents(Coin::Quarter(UsState::Alaska)); fn plus_one(x: Option) -> Option { match x { None => None, Some(x) => Some(x + 1), } } let five = Some(5); let six = plus_one(Some(5)); let none = plus_one(None); let some_u8_value = 0u8; match some_u8_value { 1 => println!("one"), 3 => println!("three"), 5 => println!("five"), 7 => println!("seven"), _ => (), } }