diff --git a/src/meta_plugin.rs b/src/meta_plugin.rs index 40015b2..a65f1d9 100644 --- a/src/meta_plugin.rs +++ b/src/meta_plugin.rs @@ -196,7 +196,9 @@ pub trait MetaPlugin { // Access to outputs mapping with default implementation fn outputs(&self) -> &std::collections::HashMap { - static EMPTY: std::collections::HashMap = std::collections::HashMap::new(); + use once_cell::sync::Lazy; + static EMPTY: Lazy> = + Lazy::new(|| std::collections::HashMap::new()); &EMPTY } @@ -206,7 +208,9 @@ pub trait MetaPlugin { // Access to options mapping with default implementation fn options(&self) -> &std::collections::HashMap { - static EMPTY: std::collections::HashMap = std::collections::HashMap::new(); + use once_cell::sync::Lazy; + static EMPTY: Lazy> = + Lazy::new(|| std::collections::HashMap::new()); &EMPTY } diff --git a/src/meta_plugin/binary.rs b/src/meta_plugin/binary.rs index 427645f..5be8710 100644 --- a/src/meta_plugin/binary.rs +++ b/src/meta_plugin/binary.rs @@ -69,9 +69,10 @@ impl MetaPlugin for BinaryMetaPlugin { } } + let is_finalized = !metadata.is_empty(); MetaPluginResponse { metadata, - is_finalized: !metadata.is_empty(), + is_finalized, } } @@ -121,7 +122,7 @@ impl MetaPlugin for BinaryMetaPlugin { self.base.options_mut() } - fn configure_options(&mut self, options: &std::collections::HashMap) -> Result<()> { + fn configure_options(&mut self, options: &std::collections::HashMap) -> anyhow::Result<()> { if let Some(max_buffer_size) = options.get("max_buffer_size") { if let Some(size) = max_buffer_size.as_u64() { self.max_buffer_size = size as usize; diff --git a/src/meta_plugin/magic.rs b/src/meta_plugin/magic.rs index bf97574..0fea701 100644 --- a/src/meta_plugin/magic.rs +++ b/src/meta_plugin/magic.rs @@ -182,7 +182,7 @@ impl MetaPlugin for MagicFileMetaPlugin { "magic_file".to_string() } - fn configure_options(&mut self, options: &std::collections::HashMap) -> Result<()> { + fn configure_options(&mut self, options: &std::collections::HashMap) -> anyhow::Result<()> { if let Some(max_buffer_size) = options.get("max_buffer_size") { if let Some(size) = max_buffer_size.as_u64() { self.max_buffer_size = size as usize; diff --git a/src/meta_plugin/program.rs b/src/meta_plugin/program.rs index 41d3787..ccc6f2f 100644 --- a/src/meta_plugin/program.rs +++ b/src/meta_plugin/program.rs @@ -162,9 +162,10 @@ impl MetaPlugin for MetaPluginProgram { self.result = Some(result); // Create metadata to be returned + let result_clone = result.clone(); metadata.push(crate::meta_plugin::MetaData { name: self.meta_name.clone(), - value: result, + value: result_clone, }); } } else { diff --git a/src/meta_plugin/system.rs b/src/meta_plugin/system.rs index 1b71023..9d5a2a3 100644 --- a/src/meta_plugin/system.rs +++ b/src/meta_plugin/system.rs @@ -1,8 +1,7 @@ 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}; +use crate::meta_plugin::MetaPlugin; #[derive(Debug, Clone, Default)] pub struct CwdMetaPlugin {