@@ -408,26 +408,37 @@ pub fn resolve_and_download<Telem: Telemetry>(
408408 dependency_manager. resolve_and_download_versions ( paths, new_package, packages_to_update)
409409}
410410
411- fn pretty_print_major_versions_available ( versions : dependency:: PackageVersionDiffs ) -> String {
412- let total_lines = versions. len ( ) + 3 ;
411+ fn format_versions_and_extract_longest_parts (
412+ versions : dependency:: PackageVersionDiffs ,
413+ ) -> (
414+ impl Iterator < Item = ( String , String , String ) > ,
415+ ( usize , usize , usize ) ,
416+ ) {
413417 let versions = versions
414418 . iter ( )
415- . map ( |( name, ( v1, v2) ) | ( name, v1. to_string ( ) , v2. to_string ( ) ) )
419+ . map ( |( name, ( v1, v2) ) | ( name. to_string ( ) , v1. to_string ( ) , v2. to_string ( ) ) )
416420 . sorted ( ) ;
417421
418422 let longest_parts = versions. clone ( ) . fold (
419423 ( 0 , 0 , 0 ) ,
420- |( max_name, max_current, max_major ) , ( name, current, major ) | {
424+ |( max_name, max_current, max_latest ) , ( name, current, latest ) | {
421425 (
422426 max_name. max ( name. len ( ) ) ,
423427 max_current. max ( current. len ( ) ) ,
424- max_major . max ( major . len ( ) ) ,
428+ max_latest . max ( latest . len ( ) ) ,
425429 )
426430 } ,
427431 ) ;
428432
429- let ( longest_package_name_length, longest_current_version_length, longest_major_version_length) =
430- longest_parts;
433+ ( versions, longest_parts)
434+ }
435+
436+ fn pretty_print_major_versions_available ( versions : dependency:: PackageVersionDiffs ) -> String {
437+ let total_lines = versions. len ( ) + 3 ;
438+ let (
439+ versions,
440+ ( longest_package_name_length, longest_current_version_length, longest_major_version_length) ,
441+ ) = format_versions_and_extract_longest_parts ( versions) ;
431442
432443 let mut output_string = String :: with_capacity (
433444 ( longest_package_name_length
@@ -440,11 +451,12 @@ fn pretty_print_major_versions_available(versions: dependency::PackageVersionDif
440451 output_string. push_str ( "\n The following dependencies have new major versions available:\n \n " ) ;
441452 for ( name, v1, v2) in versions {
442453 let name_padding = " " . repeat ( longest_package_name_length - name. len ( ) ) ;
443- let current_version_padding = " " . repeat ( longest_current_version_length - v1. to_string ( ) . len ( ) ) ;
454+ let current_version_padding =
455+ " " . repeat ( longest_current_version_length - v1. to_string ( ) . len ( ) ) ;
444456
445457 output_string. push_str (
446458 & [
447- name,
459+ & name,
448460 & name_padding,
449461 " " ,
450462 & v1. to_string ( ) ,
@@ -462,27 +474,18 @@ fn pretty_print_major_versions_available(versions: dependency::PackageVersionDif
462474
463475fn pretty_print_version_updates ( versions : dependency:: PackageVersionDiffs ) -> String {
464476 let total_lines = versions. len ( ) + 1 ;
465-
466- let versions = versions
467- . iter ( )
468- . map ( |( name, ( v1, v2) ) | ( name, v1. to_string ( ) , v2. to_string ( ) ) )
469- . sorted ( ) ;
470-
471- let longest_parts = versions. clone ( ) . fold (
472- ( 0 , 0 , 0 ) ,
473- |( max_name, max_current, max_latest) , ( name, current, latest) | {
474- (
475- max_name. max ( name. len ( ) ) ,
476- max_current. max ( current. len ( ) ) ,
477- max_latest. max ( latest. len ( ) ) ,
478- )
479- } ,
480- ) ;
481-
482- let ( name_length, current_length, latest_length) = longest_parts;
483- let longest_package_name_length = name_length. max ( 7 ) ;
484- let longest_current_version_length = ( current_length + 1 ) . max ( 7 ) ;
485- let longest_latest_version_length = ( latest_length + 1 ) . max ( 6 ) ;
477+ let (
478+ versions,
479+ (
480+ longest_package_name_length,
481+ longest_current_version_length,
482+ longest_latest_version_length,
483+ ) ,
484+ ) = format_versions_and_extract_longest_parts ( versions) ;
485+
486+ let longest_package_name_length = longest_package_name_length. max ( 7 ) ;
487+ let longest_current_version_length = ( longest_current_version_length + 1 ) . max ( 7 ) ;
488+ let longest_latest_version_length = ( longest_latest_version_length + 1 ) . max ( 6 ) ;
486489
487490 let mut output_string = String :: with_capacity (
488491 ( longest_package_name_length
@@ -513,7 +516,7 @@ fn pretty_print_version_updates(versions: dependency::PackageVersionDiffs) -> St
513516
514517 output_string. push_str (
515518 & [
516- name,
519+ & name,
517520 & name_padding,
518521 " v" ,
519522 & v1. to_string ( ) ,
0 commit comments