@@ -81,34 +81,33 @@ impl UpdateStats {
8181
8282impl std:: fmt:: Display for UpdateStats {
8383 fn fmt ( & self , f : & mut std:: fmt:: Formatter < ' _ > ) -> std:: fmt:: Result {
84+ let mut messages = Vec :: new ( ) ;
85+ let num_errors = self . num_errors . get ( ) ;
86+ if num_errors > 0 {
87+ messages. push ( format ! ( "{num_errors} source rows FAILED" ) ) ;
88+ }
89+
8490 let num_skipped = self . num_skipped . get ( ) ;
8591 if num_skipped > 0 {
86- write ! ( f , "{} rows skipped " , num_skipped) ? ;
92+ messages . push ( format ! ( "{} source rows SKIPPED " , num_skipped) ) ;
8793 }
8894
8995 let num_insertions = self . num_insertions . get ( ) ;
9096 let num_deletions = self . num_deletions . get ( ) ;
9197 let num_reprocesses = self . num_repreocesses . get ( ) ;
9298 let num_source_rows = num_insertions + num_deletions + num_reprocesses;
9399 if num_source_rows > 0 {
94- if num_skipped > 0 {
95- write ! ( f, "; " ) ?;
96- }
97- write ! ( f, "{num_source_rows} source rows processed" , ) ?;
98-
99- let num_errors = self . num_errors . get ( ) ;
100- if num_errors > 0 {
101- write ! ( f, " with {num_errors} ERRORS" , ) ?;
102- }
103- write ! (
104- f,
105- ": {num_insertions} added, {num_deletions} removed, {num_reprocesses} repocessed" ,
106- ) ?;
100+ messages. push ( format ! (
101+ "{num_source_rows} source rows processed: {num_insertions} ADDED, {num_deletions} REMOVED, {num_reprocesses} REPROCESSED" ,
102+ ) ) ;
107103 }
108104
109- if num_skipped == 0 && num_source_rows == 0 {
110- write ! ( f, "no changes" ) ?;
105+ if !messages. is_empty ( ) {
106+ write ! ( f, "{}" , messages. join( "; " ) ) ?;
107+ } else {
108+ write ! ( f, "No changes" ) ?;
111109 }
110+
112111 Ok ( ( ) )
113112 }
114113}
0 commit comments