diff --git a/src/meta_plugin.rs b/src/meta_plugin.rs index 2bc5624..40015b2 100644 --- a/src/meta_plugin.rs +++ b/src/meta_plugin.rs @@ -1,7 +1,5 @@ -use anyhow::Result; use log::debug; use serde::{Deserialize, Serialize}; -use std::collections::HashMap; pub mod program; pub mod digest; @@ -82,6 +80,10 @@ impl BaseMetaPlugin { } impl MetaPlugin for BaseMetaPlugin { + fn meta_name(&self) -> String { + self.meta_name.clone() + } + fn outputs(&self) -> &std::collections::HashMap { &self.outputs } @@ -194,7 +196,8 @@ pub trait MetaPlugin { // Access to outputs mapping with default implementation fn outputs(&self) -> &std::collections::HashMap { - &std::collections::HashMap::new() + static EMPTY: std::collections::HashMap = std::collections::HashMap::new(); + &EMPTY } fn outputs_mut(&mut self) -> &mut std::collections::HashMap { @@ -203,7 +206,8 @@ pub trait MetaPlugin { // Access to options mapping with default implementation fn options(&self) -> &std::collections::HashMap { - &std::collections::HashMap::new() + static EMPTY: std::collections::HashMap = std::collections::HashMap::new(); + &EMPTY } fn options_mut(&mut self) -> &mut std::collections::HashMap { diff --git a/src/meta_plugin/binary.rs b/src/meta_plugin/binary.rs index f20d486..427645f 100644 --- a/src/meta_plugin/binary.rs +++ b/src/meta_plugin/binary.rs @@ -1,9 +1,6 @@ -use anyhow::Result; -use rusqlite::Connection; use crate::common::is_binary::is_binary; use crate::common::PIPESIZE; -use crate::meta_plugin::{MetaPlugin, MetaPluginResponse, MetaData}; -use std::collections::HashMap; +use crate::meta_plugin::{MetaPlugin, MetaPluginResponse}; #[derive(Debug, Clone, Default)] pub struct BinaryMetaPlugin { @@ -66,7 +63,7 @@ impl MetaPlugin for BinaryMetaPlugin { if let Some(meta_data) = crate::meta_plugin::process_metadata_outputs( "binary", value, - &self.outputs + self.base.outputs() ) { metadata.push(meta_data); } @@ -89,7 +86,7 @@ impl MetaPlugin for BinaryMetaPlugin { if let Some(meta_data) = crate::meta_plugin::process_metadata_outputs( "binary", value, - &self.outputs + self.base.outputs() ) { metadata.push(meta_data); } diff --git a/src/meta_plugin/digest.rs b/src/meta_plugin/digest.rs index a0ca016..287bc02 100644 --- a/src/meta_plugin/digest.rs +++ b/src/meta_plugin/digest.rs @@ -1,7 +1,5 @@ -use anyhow::Result; use sha2::{Digest, Sha256}; use std::time::Instant; -use rusqlite::Connection; use crate::meta_plugin::MetaPlugin; diff --git a/src/meta_plugin/magic.rs b/src/meta_plugin/magic.rs index 90b5ad7..bf97574 100644 --- a/src/meta_plugin/magic.rs +++ b/src/meta_plugin/magic.rs @@ -1,6 +1,4 @@ -use anyhow::Result; use magic::{Cookie, CookieFlags}; -use rusqlite::Connection; use std::io; use crate::common::PIPESIZE; @@ -128,14 +126,14 @@ impl MetaPlugin for MagicFileMetaPlugin { // Initialize the magic cookie once let cookie = match Cookie::open(Default::default()) { Ok(cookie) => cookie, - Err(e) => { + Err(_e) => { return crate::meta_plugin::MetaPluginResponse { metadata: Vec::new(), is_finalized: true, }; } }; - if let Err(e) = cookie.load(&[] as &[&str]) { + if let Err(_e) = cookie.load(&[] as &[&str]) { return crate::meta_plugin::MetaPluginResponse { metadata: Vec::new(), is_finalized: true, @@ -173,9 +171,10 @@ impl MetaPlugin for MagicFileMetaPlugin { } } + let is_finalized = !metadata.is_empty(); crate::meta_plugin::MetaPluginResponse { metadata, - is_finalized: !metadata.is_empty(), + is_finalized, } } diff --git a/src/meta_plugin/program.rs b/src/meta_plugin/program.rs index df8cb00..41d3787 100644 --- a/src/meta_plugin/program.rs +++ b/src/meta_plugin/program.rs @@ -1,10 +1,9 @@ -use anyhow::{Context, Result, anyhow}; use log::*; use std::io::Write; use std::process::{Command, Stdio, Child}; use which::which; -use crate::meta_plugin::{MetaPlugin, MetaData}; +use crate::meta_plugin::{MetaPlugin, MetaPluginResponse}; pub struct MetaPluginProgram { pub program: String, diff --git a/src/meta_plugin/system.rs b/src/meta_plugin/system.rs index 00568e7..1b71023 100644 --- a/src/meta_plugin/system.rs +++ b/src/meta_plugin/system.rs @@ -1,10 +1,8 @@ -use anyhow::Result; use gethostname::gethostname; use std::env; use std::process; use uzers::{get_current_uid, get_current_gid, get_user_by_uid, get_group_by_gid}; -use crate::meta_plugin::{MetaPlugin, MetaPluginResponse, MetaData}; -use std::collections::HashMap; +use crate::meta_plugin::{MetaPlugin, MetaPluginResponse}; #[derive(Debug, Clone, Default)] pub struct CwdMetaPlugin { diff --git a/src/services/async_item_service.rs b/src/services/async_item_service.rs index 32ad992..1fe9c7d 100644 --- a/src/services/async_item_service.rs +++ b/src/services/async_item_service.rs @@ -8,7 +8,6 @@ use std::io::Read; use std::path::PathBuf; use std::sync::Arc; use tokio::sync::Mutex; -use log::warn; /// An asynchronous wrapper around the `ItemService` for use in async contexts like the web server. /// It uses `tokio::task::spawn_blocking` to run synchronous database and filesystem operations diff --git a/src/services/item_service.rs b/src/services/item_service.rs index f238eb1..daecb77 100644 --- a/src/services/item_service.rs +++ b/src/services/item_service.rs @@ -9,7 +9,7 @@ use crate::db::{self, Meta}; use crate::compression_engine::{get_compression_engine, CompressionType}; use crate::modes::common::settings_compression_type; use clap::Command; -use log::{debug, warn}; +use log::debug; use rusqlite::Connection; use std::collections::HashMap; use std::fs;