| 192 | } |
| 193 | |
| 194 | fn find_exercise<'a>(name: &str, exercises: &'a [Exercise]) -> &'a Exercise { |
| 195 | if name.eq("next") { |
| 196 | exercises.iter().find(|e| !e.looks_done()).unwrap_or_else(|| { |
| 197 | println!("🎉 Congratulations! You have done all the exercises!"); |
| 198 | println!("🔚 There are no more exercises to do next!"); |
| 199 | std::process::exit(1) |
| 200 | }) |
| 201 | } else { |
| 202 | exercises.iter().find(|e| e.name == name).unwrap_or_else(|| { |
| 203 | println!("No exercise found for '{}'!", name); |
| 204 | std::process::exit(1) |
| 205 | }) |
| 206 | } |
| 207 | } |
| 208 | |
| 209 | enum WatchStatus { |
| 210 | Finished, |