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() {
201
201
}
202
202
203
203
Subcommands :: Run ( subargs) => {
204
- let exercise = find_exercise ( subargs. name , exercises) ;
204
+ let exercise = find_exercise ( & subargs. name , & exercises) ;
205
205
206
206
run ( & exercise, verbose) . unwrap_or_else ( |_| std:: process:: exit ( 1 ) ) ;
207
207
}
208
208
209
209
Subcommands :: Hint ( subargs) => {
210
- let exercise = find_exercise ( subargs. name , exercises) ;
210
+ let exercise = find_exercise ( & subargs. name , & exercises) ;
211
211
212
212
println ! ( "{}" , exercise. hint) ;
213
213
}
@@ -285,14 +285,12 @@ fn spawn_watch_shell(failed_exercise_hint: &Arc<Mutex<Option<String>>>) {
285
285
} ) ;
286
286
}
287
287
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 {
291
289
exercises
292
- . into_iter ( )
293
- . find ( matching_exercise )
290
+ . iter ( )
291
+ . find ( |e| e . name == name )
294
292
. unwrap_or_else ( || {
295
- println ! ( "No exercise found for your given name!" ) ;
293
+ println ! ( "No exercise found for '{}'!" , name ) ;
296
294
std:: process:: exit ( 1 )
297
295
} )
298
296
}
You can’t perform that action at this time.
0 commit comments