From 3d96da9f2c5b04e5be539f51fc3fb300dd9c11d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pascal=20Eng=C3=A9libert?= <tuxmain@zettascript.org>
Date: Fri, 3 Dec 2021 17:33:10 +0100
Subject: [PATCH] perf(db): GvaUtxoIdDbV1::from_bytes avoid zeroed init

---
 db/src/keys/gva_utxo_id.rs | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/db/src/keys/gva_utxo_id.rs b/db/src/keys/gva_utxo_id.rs
index 1f624a8..fe3bba0 100644
--- a/db/src/keys/gva_utxo_id.rs
+++ b/db/src/keys/gva_utxo_id.rs
@@ -123,17 +123,11 @@ impl FromBytes for GvaUtxoIdDbV1 {
     type Err = CorruptedBytes;
 
     fn from_bytes(bytes: &[u8]) -> std::result::Result<Self, Self::Err> {
-        if bytes.len() == 69 {
-            // TODO uncomment when feature const_generics became stable !
-            /*let mut buffer = uninit_array![u8; 69];
-            buffer.as_out().copy_from_slice(bytes);
-            Ok(Self(unsafe { std::mem::transmute(buffer) }))*/
-            let mut buffer = [0u8; 69];
-            buffer.copy_from_slice(bytes);
-            Ok(Self(buffer))
-        } else {
-            Err(CorruptedBytes("db corrupted".to_owned()))
-        }
+        Ok(Self(
+            bytes
+                .try_into()
+                .map_err(|_| CorruptedBytes("db corrupted".to_owned()))?,
+        ))
     }
 }
 
-- 
GitLab