use anyhow::Result; use crate::digest_engine::DigestEngine; use std::io::{Read, Write}; use std::io; #[derive(Debug, Eq, PartialEq, Clone, Default)] pub struct DigestEngineNone {} impl DigestEngineNone { pub fn new() -> DigestEngineNone { DigestEngineNone {} } } impl DigestEngine for DigestEngineNone { fn create(&self) -> Result> { Ok(Box::new(DummyWriter::new())) } fn finalize(&mut self) -> io::Result { Ok("none".to_string()) } fn update(&mut self, _data: &[u8]) {} } // Dummy writer that implements Write for the none digest engine struct DummyWriter; impl DummyWriter { fn new() -> Self { DummyWriter } } impl Write for DummyWriter { fn write(&mut self, _buf: &[u8]) -> io::Result { Ok(0) } fn flush(&mut self) -> io::Result<()> { Ok(()) } }