diff --git a/src/diff.rs b/src/diff.rs index c348782..9dd5ff8 100644 --- a/src/diff.rs +++ b/src/diff.rs @@ -47,7 +47,7 @@ pub fn write_diffln<'a>( writer: &mut dyn fmt::Write, paths_old: impl Iterator, paths_new: impl Iterator, -) -> fmt::Result { +) -> Result { let mut paths = FxHashMap::<&str, Diff>>>::with_hasher(FxBuildHasher); @@ -105,7 +105,7 @@ pub fn write_diffln<'a>( let mut last_status = None::; - for (name, versions, status) in diffs { + for &(name, ref versions, status) in &diffs { if last_status != Some(status) { writeln!( writer, @@ -255,5 +255,5 @@ pub fn write_diffln<'a>( writeln!(writer)?; } - Ok(()) + Ok(diffs.len()) } diff --git a/src/main.rs b/src/main.rs index 7397466..9ea86c8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -130,7 +130,7 @@ fn real_main() -> Result<()> { writeln!(out)?; #[expect(clippy::pattern_type_mismatch)] - dix::write_diffln( + let wrote = dix::write_diffln( &mut out, paths_old.iter().map(|(_, path)| path), paths_new.iter().map(|(_, path)| path), @@ -144,7 +144,9 @@ fn real_main() -> Result<()> { let size_new = size::Size::from_bytes(closure_size_new); let size_diff = size_new - size_old; - writeln!(out)?; + if wrote > 0 { + writeln!(out)?; + } writeln!( out,