feat: create digest engine with Sha256/Md5/None and integrate with save mode
This commit is contained in:
@@ -11,6 +11,7 @@ use log::debug;
|
||||
use rusqlite::Connection;
|
||||
|
||||
use crate::db::{self};
|
||||
use crate::digest_engine::{DigestEngine, get_engine, DigestType};
|
||||
use crate::modes::common::get_meta_from_env;
|
||||
use chrono::Utc;
|
||||
|
||||
@@ -53,6 +54,10 @@ pub fn mode_save(
|
||||
let compression_type = compression_type_opt.unwrap();
|
||||
debug!("MAIN: Compression type: {}", compression_type);
|
||||
|
||||
// Create a new digest engine
|
||||
let digest_type = DigestType::Sha256;
|
||||
let mut digest_engine = get_engine(digest_type);
|
||||
|
||||
let mut item = db::Item {
|
||||
id: None,
|
||||
ts: Utc::now(),
|
||||
@@ -140,6 +145,7 @@ pub fn mode_save(
|
||||
|
||||
stdout.write_all(&buffer[..n])?;
|
||||
item_out.write_all(&buffer[..n])?;
|
||||
digest_engine.update(&buffer[..n])?;
|
||||
item.size = match item.size {
|
||||
None => Some(n as i64),
|
||||
Some(prev_n) => Some(prev_n + n as i64),
|
||||
@@ -149,6 +155,10 @@ pub fn mode_save(
|
||||
|
||||
stdout.flush()?;
|
||||
item_out.flush()?;
|
||||
|
||||
// Finalize the digest and log the result
|
||||
let digest = digest_engine.finalize()?;
|
||||
debug!("DIGEST: {}", digest);
|
||||
|
||||
db::update_item(&conn, item.clone())?;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user