@@ -411,41 +411,28 @@ fn format_versions_and_extract_longest_parts(
411411 versions : dependency:: PackageVersionDiffs ,
412412) -> (
413413 impl Iterator < Item = ( String , String , String ) > ,
414- ( usize , usize , usize ) ,
414+ ( usize , usize ) ,
415415) {
416416 let versions = versions
417417 . iter ( )
418418 . map ( |( name, ( v1, v2) ) | ( name. to_string ( ) , v1. to_string ( ) , v2. to_string ( ) ) )
419419 . sorted ( ) ;
420420
421- let longest_parts = versions. clone ( ) . fold (
422- ( 0 , 0 , 0 ) ,
423- |( max_name, max_current, max_latest) , ( name, current, latest) | {
424- (
425- max_name. max ( name. len ( ) ) ,
426- max_current. max ( current. len ( ) ) ,
427- max_latest. max ( latest. len ( ) ) ,
428- )
429- } ,
430- ) ;
421+ let longest_parts =
422+ versions
423+ . clone ( )
424+ . fold ( ( 0 , 0 ) , |( max_name, max_current) , ( name, current, _) | {
425+ ( max_name. max ( name. len ( ) ) , max_current. max ( current. len ( ) ) )
426+ } ) ;
431427
432428 ( versions, longest_parts)
433429}
434430
435431fn pretty_print_major_versions_available ( versions : dependency:: PackageVersionDiffs ) -> String {
436- let total_lines = versions. len ( ) + 3 ;
437- let (
438- versions,
439- ( longest_package_name_length, longest_current_version_length, longest_major_version_length) ,
440- ) = format_versions_and_extract_longest_parts ( versions) ;
441-
442- let mut output_string = String :: with_capacity (
443- ( longest_package_name_length
444- + longest_current_version_length
445- + longest_major_version_length
446- + 5 )
447- * total_lines,
448- ) ;
432+ let ( versions, ( longest_package_name_length, longest_current_version_length) ) =
433+ format_versions_and_extract_longest_parts ( versions) ;
434+
435+ let mut output_string = String :: new ( ) ;
449436
450437 output_string. push_str ( "\n The following dependencies have new major versions available:\n \n " ) ;
451438 for ( name, v1, v2) in versions {
@@ -472,29 +459,15 @@ fn pretty_print_major_versions_available(versions: dependency::PackageVersionDif
472459}
473460
474461fn pretty_print_version_updates ( versions : dependency:: PackageVersionDiffs ) -> String {
475- let total_lines = versions. len ( ) + 1 ;
476- let (
477- versions,
478- (
479- longest_package_name_length,
480- longest_current_version_length,
481- longest_latest_version_length,
482- ) ,
483- ) = format_versions_and_extract_longest_parts ( versions) ;
462+ let ( versions, ( longest_package_name_length, longest_current_version_length) ) =
463+ format_versions_and_extract_longest_parts ( versions) ;
484464
485465 let longest_package_name_length = longest_package_name_length. max ( 7 ) ;
486- let longest_current_version_length = ( longest_current_version_length + 1 ) . max ( 7 ) ;
487- let longest_latest_version_length = ( longest_latest_version_length + 1 ) . max ( 6 ) ;
488-
489- let mut output_string = String :: with_capacity (
490- ( longest_package_name_length
491- + longest_current_version_length
492- + longest_latest_version_length
493- + 3 )
494- * total_lines,
495- ) ;
466+ let longest_current_version_length = longest_current_version_length. max ( 8 ) ;
467+
468+ let mut output_string = String :: new ( ) ;
496469
497- let name_padding = " " . repeat ( longest_package_name_length - 7 ) ;
470+ let name_padding = " " . repeat ( longest_package_name_length - 6 ) ;
498471 let current_version_padding = " " . repeat ( longest_current_version_length - 7 ) ;
499472
500473 output_string. push_str (
@@ -503,24 +476,29 @@ fn pretty_print_version_updates(versions: dependency::PackageVersionDiffs) -> St
503476 & name_padding,
504477 " Current" ,
505478 & current_version_padding,
506- " Latest\n " ,
479+ " Latest\n " ,
480+ "-------" ,
481+ & name_padding,
482+ " -------" ,
483+ & current_version_padding,
484+ " ------\n " ,
507485 ]
508486 . concat ( ) ,
509487 ) ;
510488
511489 for ( name, v1, v2) in versions {
512490 let name_padding = " " . repeat ( longest_package_name_length - name. len ( ) ) ;
513491 let current_version_padding =
514- " " . repeat ( longest_current_version_length - 1 - v1. to_string ( ) . len ( ) ) ;
492+ " " . repeat ( longest_current_version_length - v1. to_string ( ) . len ( ) ) ;
515493
516494 output_string. push_str (
517495 & [
518496 & name,
519497 & name_padding,
520- " v " ,
498+ " " ,
521499 & v1. to_string ( ) ,
522500 & current_version_padding,
523- " v " ,
501+ " " ,
524502 & v2. to_string ( ) ,
525503 "\n " ,
526504 ]
0 commit comments