From f0ecab3aa26759011f72ec5f781f82db570f36ca Mon Sep 17 00:00:00 2001 From: Andrew Date: Tue, 15 Nov 2022 23:15:18 +1300 Subject: [PATCH] Use windows function for minor improvement --- src/png/mod.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/png/mod.rs b/src/png/mod.rs index 30668eea..147c1c9b 100644 --- a/src/png/mod.rs +++ b/src/png/mod.rs @@ -382,8 +382,8 @@ impl PngImage { for try_filter in try_filters { try_filter.filter_line(bpp, line.data, last_line, &mut f_buf); let mut set = bitarr![0; 0x10000]; - for i in 1..f_buf.len() { - let bigram = (f_buf[i - 1] as usize) << 8 | f_buf[i] as usize; + for pair in f_buf.windows(2) { + let bigram = (pair[0] as usize) << 8 | pair[1] as usize; set.set(bigram, true); } let size = set.count_ones(); @@ -401,8 +401,8 @@ impl PngImage { for try_filter in try_filters { try_filter.filter_line(bpp, line.data, last_line, &mut f_buf); counts.clear(); - for i in 1..f_buf.len() { - let bigram = (f_buf[i - 1] as u16) << 8 | f_buf[i] as u16; + for pair in f_buf.windows(2) { + let bigram = (pair[0] as u16) << 8 | pair[1] as u16; counts.entry(bigram).and_modify(|e| *e += 1).or_insert(1); } let size = counts.values().fold(0, |acc, &x| acc + ilog2i(x)) as i32;