#![warn(clippy::all, clippy::pedantic)] #[derive(Debug, Copy, Clone)] enum Flavor { Chocolate, } #[derive(Debug, Copy, Clone)] enum Dessert { Banana, Pudding, Cake(Flavor), } fn main() { let desserts_of_the_week = vec![Dessert::Banana, Dessert::Cake(Flavor::Chocolate), Dessert::Pudding]; let a = ["lol", "NaN", "2", "5", "Xunda"]; let _: Option = a.iter().find(|s| s.parse::().is_ok()).map(|s| s.parse().unwrap()); #[allow(clippy::match_like_matches_macro)] let _: Option = desserts_of_the_week .iter() .find(|dessert| match *dessert { Dessert::Cake(_) => true, _ => false, }) .map(|dessert| match *dessert { Dessert::Cake(ref flavor) => *flavor, _ => unreachable!(), }); }