From 14ff609b8efe96af660751031715081b1b63015c Mon Sep 17 00:00:00 2001 From: Luracasmus <77991691+Luracasmus@users.noreply.github.com> Date: Sat, 22 Nov 2025 19:48:16 +0100 Subject: [PATCH] Apply `clippy::option_if_let_else` --- src/filters.rs | 33 +++++++++++++-------------------- src/png/mod.rs | 9 ++++----- 2 files changed, 17 insertions(+), 25 deletions(-) diff --git a/src/filters.rs b/src/filters.rs index a7922596..4826f762 100644 --- a/src/filters.rs +++ b/src/filters.rs @@ -127,22 +127,18 @@ impl RowFilter { } Self::Average => { for (i, byte) in data.iter().enumerate() { - buf.push(match i.checked_sub(bpp) { - Some(x) => byte.wrapping_sub( - ((u16::from(data[x]) + u16::from(prev_line[i])) >> 1) as u8, - ), - None => byte.wrapping_sub(prev_line[i] >> 1), - }); + buf.push(byte.wrapping_sub(i.checked_sub(bpp).map_or_else( + || prev_line[i] >> 1, + |x| ((u16::from(data[x]) + u16::from(prev_line[i])) >> 1) as u8, + ))); } } Self::Paeth => { for (i, byte) in data.iter().enumerate() { - buf.push(match i.checked_sub(bpp) { - Some(x) => { - byte.wrapping_sub(paeth_predictor(data[x], prev_line[i], prev_line[x])) - } - None => byte.wrapping_sub(prev_line[i]), - }); + buf.push(byte.wrapping_sub(i.checked_sub(bpp).map_or_else( + || prev_line[i], + |x| paeth_predictor(data[x], prev_line[i], prev_line[x]), + ))); } } } @@ -241,10 +237,7 @@ impl RowFilter { Self::Sub => { for (i, &cur) in data.iter().enumerate() { let prev_byte = i.checked_sub(bpp).and_then(|x| buf.get(x).copied()); - buf.push(match prev_byte { - Some(b) => cur.wrapping_add(b), - None => cur, - }); + buf.push(prev_byte.map_or(cur, |b| cur.wrapping_add(b))); } } Self::Up => { @@ -257,10 +250,10 @@ impl RowFilter { Self::Average => { for (i, (&cur, &last)) in data.iter().zip(prev_line).enumerate() { let prev_byte = i.checked_sub(bpp).and_then(|x| buf.get(x).copied()); - buf.push(match prev_byte { - Some(b) => cur.wrapping_add(((u16::from(b) + u16::from(last)) >> 1) as u8), - None => cur.wrapping_add(last >> 1), - }); + buf.push(cur.wrapping_add(prev_byte.map_or_else( + || last >> 1, + |b| ((u16::from(b) + u16::from(last)) >> 1) as u8, + ))); } } Self::Paeth => { diff --git a/src/png/mod.rs b/src/png/mod.rs index 81552edf..3b0da7c4 100644 --- a/src/png/mod.rs +++ b/src/png/mod.rs @@ -310,11 +310,10 @@ impl PngImage { match &self.ihdr.color_type { ColorType::Indexed { palette } => { let plte = 12 + palette.len() * 3; - if let Some(trns) = palette.iter().rposition(|p| p.a != 255) { - plte + 12 + trns + 1 - } else { - plte - } + palette + .iter() + .rposition(|p| p.a != 255) + .map_or(plte, |trns| plte + 12 + trns + 1) } ColorType::Grayscale { transparent_shade } if transparent_shade.is_some() => 12 + 2, ColorType::RGB { transparent_color } if transparent_color.is_some() => 12 + 6,