File tree Expand file tree Collapse file tree 1 file changed +6
-8
lines changed
Expand file tree Collapse file tree 1 file changed +6
-8
lines changed Original file line number Diff line number Diff line change @@ -201,13 +201,13 @@ fn main() {
201201 }
202202
203203 Subcommands :: Run ( subargs) => {
204- let exercise = find_exercise ( subargs. name , exercises) ;
204+ let exercise = find_exercise ( & subargs. name , & exercises) ;
205205
206206 run ( & exercise, verbose) . unwrap_or_else ( |_| std:: process:: exit ( 1 ) ) ;
207207 }
208208
209209 Subcommands :: Hint ( subargs) => {
210- let exercise = find_exercise ( subargs. name , exercises) ;
210+ let exercise = find_exercise ( & subargs. name , & exercises) ;
211211
212212 println ! ( "{}" , exercise. hint) ;
213213 }
@@ -285,14 +285,12 @@ fn spawn_watch_shell(failed_exercise_hint: &Arc<Mutex<Option<String>>>) {
285285 } ) ;
286286}
287287
288- fn find_exercise ( name : String , exercises : Vec < Exercise > ) -> Exercise {
289- let matching_exercise = |e : & Exercise | name == e. name ;
290-
288+ fn find_exercise < ' a > ( name : & str , exercises : & ' a [ Exercise ] ) -> & ' a Exercise {
291289 exercises
292- . into_iter ( )
293- . find ( matching_exercise )
290+ . iter ( )
291+ . find ( |e| e . name == name )
294292 . unwrap_or_else ( || {
295- println ! ( "No exercise found for your given name!" ) ;
293+ println ! ( "No exercise found for '{}'!" , name ) ;
296294 std:: process:: exit ( 1 )
297295 } )
298296}
You can’t perform that action at this time.
0 commit comments