Skip to content

Commit 93e369a

Browse files
committed
refactor(update): Clarify return type
1 parent 012ca52 commit 93e369a

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

src/cargo/ops/cargo_generate_lockfile.rs

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,12 @@ pub fn update_lockfile(ws: &Workspace<'_>, opts: &UpdateOptions<'_>) -> CargoRes
165165
opts.config.shell().status_with_color(status, msg, color)
166166
};
167167
let mut unchanged_behind = 0;
168-
for (removed, added, unchanged) in compare_dependency_graphs(&previous_resolve, &resolve) {
168+
for ResolvedPackageVersions {
169+
removed,
170+
added,
171+
unchanged,
172+
} in compare_dependency_graphs(&previous_resolve, &resolve)
173+
{
169174
fn format_latest(version: semver::Version) -> String {
170175
let warn = style::WARN;
171176
format!(" {warn}(latest: v{version}){warn:#}")
@@ -314,10 +319,16 @@ pub fn update_lockfile(ws: &Workspace<'_>, opts: &UpdateOptions<'_>) -> CargoRes
314319
}
315320
}
316321

322+
#[derive(Default, Clone, Debug)]
323+
struct ResolvedPackageVersions {
324+
removed: Vec<PackageId>,
325+
added: Vec<PackageId>,
326+
unchanged: Vec<PackageId>,
327+
}
317328
fn compare_dependency_graphs(
318329
previous_resolve: &Resolve,
319330
resolve: &Resolve,
320-
) -> Vec<(Vec<PackageId>, Vec<PackageId>, Vec<PackageId>)> {
331+
) -> Vec<ResolvedPackageVersions> {
321332
fn key(dep: PackageId) -> (&'static str, SourceId) {
322333
(dep.name().as_str(), dep.source_id())
323334
}
@@ -359,24 +370,28 @@ pub fn update_lockfile(ws: &Workspace<'_>, opts: &UpdateOptions<'_>) -> CargoRes
359370

360371
// Map `(package name, package source)` to `(removed versions, added versions)`.
361372
let mut changes = BTreeMap::new();
362-
let empty = (Vec::new(), Vec::new(), Vec::new());
373+
let empty = ResolvedPackageVersions::default();
363374
for dep in previous_resolve.iter() {
364375
changes
365376
.entry(key(dep))
366377
.or_insert_with(|| empty.clone())
367-
.0
378+
.removed
368379
.push(dep);
369380
}
370381
for dep in resolve.iter() {
371382
changes
372383
.entry(key(dep))
373384
.or_insert_with(|| empty.clone())
374-
.1
385+
.added
375386
.push(dep);
376387
}
377388

378389
for v in changes.values_mut() {
379-
let (ref mut old, ref mut new, ref mut other) = *v;
390+
let ResolvedPackageVersions {
391+
removed: ref mut old,
392+
added: ref mut new,
393+
unchanged: ref mut other,
394+
} = *v;
380395
old.sort();
381396
new.sort();
382397
let removed = vec_subset(old, new);

0 commit comments

Comments
 (0)