@@ -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