@@ -484,16 +484,23 @@ zzz = { version = "> 0.0.0" }
484484pub struct Resolved {
485485 pub manifest : Manifest ,
486486 pub added : Vec < ( EcoString , Version ) > ,
487- pub changed : Vec < ( EcoString , Version , Version ) > ,
487+ pub changed : Vec < Changed > ,
488488 pub removed : Vec < EcoString > ,
489489}
490490
491+ #[ derive( Debug , PartialEq ) ]
492+ pub struct Changed {
493+ pub name : EcoString ,
494+ pub old : Version ,
495+ pub new : Version ,
496+ }
497+
491498impl Resolved {
492499 pub fn any_changes ( & self ) -> bool {
493500 !self . added . is_empty ( ) || !self . changed . is_empty ( ) || !self . removed . is_empty ( )
494501 }
495502
496- pub fn add_added ( manifest : Manifest ) -> Resolved {
503+ pub fn all_added ( manifest : Manifest ) -> Resolved {
497504 let added = manifest
498505 . packages
499506 . iter ( )
@@ -531,7 +538,11 @@ impl Resolved {
531538 match old. remove ( & new. name ) {
532539 Some ( old_version) if old_version == & new. version => ( ) ,
533540 Some ( old_version) => {
534- changed. push ( ( new. name . clone ( ) , old_version. clone ( ) , new. version . clone ( ) ) ) ;
541+ changed. push ( Changed {
542+ name : new. name . clone ( ) ,
543+ old : old_version. clone ( ) ,
544+ new : new. version . clone ( ) ,
545+ } ) ;
535546 }
536547 None => {
537548 added. push ( ( new. name . clone ( ) , new. version . clone ( ) ) ) ;
@@ -591,7 +602,7 @@ fn resolved_with_updated() {
591602
592603 let mut resolved = Resolved :: with_updates ( & old, new) ;
593604 resolved. added . sort ( ) ;
594- resolved. changed . sort ( ) ;
605+ resolved. changed . sort_by ( |a , b| a . name . cmp ( & b . name ) ) ;
595606 resolved. removed . sort ( ) ;
596607
597608 assert_eq ! (
@@ -605,16 +616,16 @@ fn resolved_with_updated() {
605616 assert_eq ! (
606617 resolved. changed,
607618 vec![
608- (
609- "changed1" . into( ) ,
610- Version :: new( 3 , 0 , 0 ) ,
611- Version :: new( 5 , 0 , 0 )
612- ) ,
613- (
614- "changed2" . into( ) ,
615- Version :: new( 0 , 1 , 0 ) ,
616- Version :: new( 3 , 0 , 0 )
617- ) ,
619+ Changed {
620+ name : "changed1" . into( ) ,
621+ old : Version :: new( 3 , 0 , 0 ) ,
622+ new : Version :: new( 5 , 0 , 0 )
623+ } ,
624+ Changed {
625+ name : "changed2" . into( ) ,
626+ old : Version :: new( 0 , 1 , 0 ) ,
627+ new : Version :: new( 3 , 0 , 0 )
628+ } ,
618629 ]
619630 ) ;
620631
0 commit comments