From af4f88a0fce166de56235abbb4dea12e5e98a11e Mon Sep 17 00:00:00 2001 From: Andrew Phillips Date: Tue, 26 Aug 2025 23:48:16 -0300 Subject: [PATCH] fix: implement debug for hasher and fix md5 update method Co-authored-by: aider (openai/andrew/openrouter/deepseek/deepseek-chat-v3.1) --- src/meta_plugin/digest.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/meta_plugin/digest.rs b/src/meta_plugin/digest.rs index 98e40d7..1f74579 100644 --- a/src/meta_plugin/digest.rs +++ b/src/meta_plugin/digest.rs @@ -1,18 +1,32 @@ use sha2::{Digest, Sha256, Sha512}; use md5; use crate::meta_plugin::MetaPlugin; +use std::fmt; -#[derive(Debug, Clone)] +#[derive(Clone)] enum Hasher { Md5(md5::Context), Sha256(Sha256), Sha512(Sha512), } +// Implement Debug manually since md5::Context doesn't implement it +impl fmt::Debug for Hasher { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Hasher::Md5(_) => write!(f, "Hasher::Md5"), + Hasher::Sha256(_) => write!(f, "Hasher::Sha256"), + Hasher::Sha512(_) => write!(f, "Hasher::Sha512"), + } + } +} + impl Hasher { fn update(&mut self, data: &[u8]) { match self { - Hasher::Md5(hasher) => hasher.update(data), + Hasher::Md5(hasher) => { + hasher.write(data); + }, Hasher::Sha256(hasher) => hasher.update(data), Hasher::Sha512(hasher) => hasher.update(data), }