Skip to content

Commit b48aeb0

Browse files
vshakitskiylpil
authored andcommitted
move duplicate code into helper function
1 parent d1a7d7b commit b48aeb0

File tree

1 file changed

+34
-31
lines changed

1 file changed

+34
-31
lines changed

compiler-cli/src/dependencies.rs

Lines changed: 34 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -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("\nThe 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

463475
fn 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

Comments
 (0)