File tree Expand file tree Collapse file tree 1 file changed +14
-4
lines changed
Expand file tree Collapse file tree 1 file changed +14
-4
lines changed Original file line number Diff line number Diff line change @@ -202,10 +202,7 @@ fn print_lockfile_update(
202202 vec ! [ ]
203203 } ;
204204
205- if diff. removed . len ( ) == 1 && diff. added . len ( ) == 1 {
206- let added = diff. added . into_iter ( ) . next ( ) . unwrap ( ) ;
207- let removed = diff. removed . into_iter ( ) . next ( ) . unwrap ( ) ;
208-
205+ if let Some ( ( removed, added) ) = diff. change ( ) {
209206 let latest = if !possibilities. is_empty ( ) {
210207 possibilities
211208 . iter ( )
@@ -400,6 +397,19 @@ impl PackageDiff {
400397 changes. into_iter ( ) . map ( |( _, v) | v) . collect ( )
401398 }
402399
400+ /// Guess if a package upgraded/downgraded
401+ ///
402+ /// All `PackageDiff` knows is that entries were added/removed within [`Resolve`].
403+ /// A package could be added or removed because of dependencies from other packages
404+ /// which makes it hard to definitively say "X was upgrade to N".
405+ pub fn change ( & self ) -> Option < ( & PackageId , & PackageId ) > {
406+ if self . removed . len ( ) == 1 && self . added . len ( ) == 1 {
407+ Some ( ( & self . removed [ 0 ] , & self . added [ 0 ] ) )
408+ } else {
409+ None
410+ }
411+ }
412+
403413 /// For querying [`PackageRegistry`] for alternative versions to report to the user
404414 pub fn alternatives_query ( & self ) -> Option < crate :: core:: dependency:: Dependency > {
405415 let package_id = [
You can’t perform that action at this time.
0 commit comments