From a0409e0bea9ea7db4a1faa9934ac9c88edc309bc Mon Sep 17 00:00:00 2001
From: CosminPerRam <cosmin.p@live.com>
Date: Wed, 12 Feb 2025 22:00:35 +0200
Subject: [PATCH 1/3] feat: reduce CrcReader::sum calls in
 GzEncoder::read_footer

---
 src/gz/bufread.rs | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/gz/bufread.rs b/src/gz/bufread.rs
index e01e5284..fee11e03 100644
--- a/src/gz/bufread.rs
+++ b/src/gz/bufread.rs
@@ -82,11 +82,12 @@ impl<R: BufRead> GzEncoder<R> {
             return Ok(0);
         }
         let crc = self.inner.get_ref().crc();
+        let calced_crc = crc.sum();
         let ref arr = [
-            (crc.sum() >> 0) as u8,
-            (crc.sum() >> 8) as u8,
-            (crc.sum() >> 16) as u8,
-            (crc.sum() >> 24) as u8,
+            (calced_crc >> 0) as u8,
+            (calced_crc >> 8) as u8,
+            (calced_crc >> 16) as u8,
+            (calced_crc >> 24) as u8,
             (crc.amount() >> 0) as u8,
             (crc.amount() >> 8) as u8,
             (crc.amount() >> 16) as u8,

From 93973acb77f9d58c3f943c50506bc4d77ff15aaa Mon Sep 17 00:00:00 2001
From: CosminPerRam <cosmin.p@live.com>
Date: Wed, 12 Feb 2025 22:13:26 +0200
Subject: [PATCH 2/3] feat: use to_le_bytes, remove explicit ref in declaration

---
 src/gz/bufread.rs | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/gz/bufread.rs b/src/gz/bufread.rs
index fee11e03..bca0e64d 100644
--- a/src/gz/bufread.rs
+++ b/src/gz/bufread.rs
@@ -82,18 +82,18 @@ impl<R: BufRead> GzEncoder<R> {
             return Ok(0);
         }
         let crc = self.inner.get_ref().crc();
-        let calced_crc = crc.sum();
-        let ref arr = [
-            (calced_crc >> 0) as u8,
-            (calced_crc >> 8) as u8,
-            (calced_crc >> 16) as u8,
-            (calced_crc >> 24) as u8,
+        let calced_crc = crc.sum().to_le_bytes();
+        let arr = [
+            calced_crc[0],
+            calced_crc[1],
+            calced_crc[2],
+            calced_crc[3],
             (crc.amount() >> 0) as u8,
             (crc.amount() >> 8) as u8,
             (crc.amount() >> 16) as u8,
             (crc.amount() >> 24) as u8,
         ];
-        Ok(copy(into, arr, &mut self.pos))
+        Ok(copy(into, &arr, &mut self.pos))
     }
 }
 

From 1ccce6e78a8f4ddcabcf8257a4d65db7baf81aac Mon Sep 17 00:00:00 2001
From: CosminPerRam <cosmin.p@live.com>
Date: Wed, 12 Feb 2025 22:20:55 +0200
Subject: [PATCH 3/3] feat: rename calced_crc to calced_crc_bytes

---
 src/gz/bufread.rs | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/gz/bufread.rs b/src/gz/bufread.rs
index bca0e64d..5cfc1008 100644
--- a/src/gz/bufread.rs
+++ b/src/gz/bufread.rs
@@ -82,12 +82,12 @@ impl<R: BufRead> GzEncoder<R> {
             return Ok(0);
         }
         let crc = self.inner.get_ref().crc();
-        let calced_crc = crc.sum().to_le_bytes();
+        let calced_crc_bytes = crc.sum().to_le_bytes();
         let arr = [
-            calced_crc[0],
-            calced_crc[1],
-            calced_crc[2],
-            calced_crc[3],
+            calced_crc_bytes[0],
+            calced_crc_bytes[1],
+            calced_crc_bytes[2],
+            calced_crc_bytes[3],
             (crc.amount() >> 0) as u8,
             (crc.amount() >> 8) as u8,
             (crc.amount() >> 16) as u8,