refactor: update digest engine to use Result and Write, add is_supported method

This commit is contained in:
Andrew Phillips
2025-05-12 20:32:58 -03:00
committed by Andrew Phillips (aider)
parent 1aba71a3d6
commit 4ee0715e39
5 changed files with 115 additions and 60 deletions

View File

@@ -11,7 +11,7 @@ use log::debug;
use rusqlite::Connection;
use crate::db::{self};
use crate::digest_engine::{DigestEngine, get_engine, DigestType};
use crate::digest_engine::{get_engine, DigestEngine, DigestType};
use crate::modes::common::get_meta_from_env;
use chrono::Utc;
@@ -49,7 +49,8 @@ pub fn mode_save(
use gethostname::gethostname;
use std::io::Write;
let compression_type_opt = crate::compression_engine::CompressionType::from_str(&compression_name);
let compression_type_opt =
crate::compression_engine::CompressionType::from_str(&compression_name);
if compression_type_opt.is_err() {
cmd.error(
ErrorKind::InvalidValue,
@@ -62,10 +63,9 @@ pub fn mode_save(
debug!("MAIN: Compression type: {}", compression_type);
// Create a new digest engine
let digest_type = DigestType::from_str(&digest_name)
.unwrap_or(DigestType::Sha256);
let digest_type = DigestType::from_str(&digest_name).unwrap_or(DigestType::Sha256);
let mut digest_engine = get_engine(digest_type);
let mut item = db::Item {
id: None,
ts: Utc::now(),
@@ -163,7 +163,7 @@ pub fn mode_save(
stdout.flush()?;
item_out.flush()?;
// Finalize the digest and log the result
let digest = digest_engine.finalize()?;
debug!("DIGEST: {}", digest);