Option Type

fn main() {
  let mut alfa = vec![
    String::from("apple"),
  ];

  let bravo = alfa.pop();
  let item = alfa.pop();

  match item {
    Some(value) => {
      println!("got {value}");
    }
    None => {
      println!("got nothing");
    }
  }
}
fn main() {
  let mut alfa = vec![
    String::from("apple"),
  ];
  check_value(alfa.pop());
  check_value(alfa.pop());
}

fn check_value(value: Option<String>) {
  match value {
    Some(value) => {
      println!("got {}", value);
    }
    None => {
      println!("got nothing");
    }
  }
}


Example using a funciton

enum Widget {
  Alfa(String),
  Bravo
}

fn main() {
  let thing = Widget::Alfa(
    String::from("apple")
  );

  check_thing(thing);
}


fn check_thing(value: Widget) {
  match value {
    Widget::Alfa(x) => {
      println!("alfa has {}", x);
    }
    Widget::Bravo => {
      println!("bravo has nothing");
    }
  }
}