1
1
use std:: fmt;
2
+ use std:: fmt:: Write as _;
2
3
use std:: task:: Poll ;
3
4
4
5
use crate :: core:: { Dependency , PackageId , Registry , Summary } ;
@@ -325,12 +326,10 @@ pub(super) fn activation_error(
325
326
. collect ( ) ;
326
327
name_candidates. sort_by_key ( |o| o. 0 ) ;
327
328
328
- let mut msg: String ;
329
+ let mut msg = String :: new ( ) ;
329
330
if !name_candidates. is_empty ( ) {
330
- msg = format ! (
331
- "no matching package found\n searched package name: `{}`\n " ,
332
- dep. package_name( )
333
- ) ;
331
+ let _ = writeln ! ( & mut msg, "no matching package found" , ) ;
332
+ let _ = writeln ! ( & mut msg, "searched package name: `{}`" , dep. package_name( ) ) ;
334
333
let mut names = name_candidates
335
334
. iter ( )
336
335
. take ( 3 )
@@ -342,31 +341,34 @@ pub(super) fn activation_error(
342
341
}
343
342
// Vertically align first suggestion with missing crate name
344
343
// so a typo jumps out at you.
345
- msg . push_str ( "perhaps you meant: " ) ;
346
- msg . push_str ( & names . iter ( ) . enumerate ( ) . fold (
347
- String :: default ( ) ,
348
- |acc, ( i, el) | match i {
344
+ let suggestions = names
345
+ . iter ( )
346
+ . enumerate ( )
347
+ . fold ( String :: default ( ) , |acc, ( i, el) | match i {
349
348
0 => acc + el,
350
349
i if names. len ( ) - 1 == i && name_candidates. len ( ) <= 3 => acc + " or " + el,
351
350
_ => acc + ", " + el,
352
- } ,
353
- ) ) ;
354
- msg. push ( '\n' ) ;
351
+ } ) ;
352
+ let _ = writeln ! ( & mut msg, "perhaps you meant: {suggestions}" ) ;
355
353
} else {
356
- msg = format ! ( "no matching package named `{}` found\n " , dep. package_name( ) ) ;
354
+ let _ = writeln ! (
355
+ & mut msg,
356
+ "no matching package named `{}` found" ,
357
+ dep. package_name( )
358
+ ) ;
357
359
}
358
360
359
361
let mut location_searched_msg = registry. describe_source ( dep. source_id ( ) ) ;
360
362
if location_searched_msg. is_empty ( ) {
361
363
location_searched_msg = format ! ( "{}" , dep. source_id( ) ) ;
362
364
}
363
365
364
- msg . push_str ( & format ! ( "location searched: {}\n " , location_searched_msg) ) ;
365
- msg . push_str ( "required by " ) ;
366
- msg . push_str ( & describe_path_in_context (
367
- resolver_ctx ,
368
- & parent. package_id ( ) ,
369
- ) ) ;
366
+ let _ = writeln ! ( & mut msg , "location searched: {}" , location_searched_msg) ;
367
+ let _ = write ! (
368
+ & mut msg ,
369
+ "required by {}" ,
370
+ describe_path_in_context ( resolver_ctx , & parent. package_id( ) ) ,
371
+ ) ;
370
372
371
373
msg
372
374
} ;
0 commit comments