#[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() { let coin = Coin::Quarter(UsState::Alaska); value_in_cents(&coin); let mut count = 0; if let Coin::Quarter(state) = coin { println!("State quarter from: {:?}!", state); } else { count += 1; } 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"), _ => (), } let some_u8_value = Some(0u8); if let Some(3) = some_u8_value { println!("three"); } }