From eb9c6f9475f2e99605854fd6bb499511c79fd42c Mon Sep 17 00:00:00 2001 From: David Senk Date: Sat, 12 Jul 2025 17:29:51 -0400 Subject: [PATCH] add md5, minor changes to trait --- src/args.rs | 3 +++ src/hashes.rs | 9 +++------ src/hashes/null_hash.rs | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/args.rs b/src/args.rs index 3ff2123..dfb41e1 100644 --- a/src/args.rs +++ b/src/args.rs @@ -25,4 +25,7 @@ pub struct Args { /// Blake2b256 #[arg(long)] pub blake256: bool, + /// MD5 + #[arg(long)] + pub md5: bool, } diff --git a/src/hashes.rs b/src/hashes.rs index dce5a37..8eec923 100644 --- a/src/hashes.rs +++ b/src/hashes.rs @@ -2,6 +2,7 @@ mod null_hash; use crate::Args; +use md5::digest; use std::sync::Arc; type BITS256 = [u8; 32]; @@ -46,12 +47,8 @@ impl HashReturn { pub trait Hasher { fn new() -> Self; - fn digest(&mut self, bytes: ArcU8); + fn digest(&mut self, bytes: impl AsRef<[u8]>); fn complete(self) -> HashReturn; } -struct HashKeeper {} - -pub struct Hashes { - hashes: Args, -} +pub struct Hashes {} diff --git a/src/hashes/null_hash.rs b/src/hashes/null_hash.rs index fdb61a7..2da8dea 100644 --- a/src/hashes/null_hash.rs +++ b/src/hashes/null_hash.rs @@ -22,7 +22,7 @@ impl Hasher for NullHash { fn new() -> Self { NullHash { hash: [0; 32] } } - fn digest(&mut self, bytes: ArcU8) { + fn digest(&mut self, bytes: impl AsRef<[u8]>) { let bytes = bytes.as_ref(); let start_point = if bytes.len() < 32 { @@ -50,7 +50,7 @@ mod test { let mut hasher = NullHash::new(); for i in 0..32u8 { - hasher.digest(Arc::new([i; 1])); + hasher.digest([i; 1]); } assert_eq!(*hasher.complete().into_bytes().first().unwrap(), 31); @@ -66,7 +66,7 @@ mod test { *byte = i; } - hasher.digest(Arc::new(source_bytes)); + hasher.digest(source_bytes); let result = hasher.complete().into_bytes();