From d85e9ec3b0c2ba688c7403b2b9ac02562d55c514 Mon Sep 17 00:00:00 2001 From: RGBCube Date: Fri, 9 May 2025 17:44:54 +0300 Subject: [PATCH] fix: don't write double newlines when package diff doesn't exist --- src/diff.rs | 6 +++--- src/main.rs | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) 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,