diff --git a/src/meta_plugin/system.rs b/src/meta_plugin/system.rs index 02092bd..6dbb982 100644 --- a/src/meta_plugin/system.rs +++ b/src/meta_plugin/system.rs @@ -291,8 +291,7 @@ impl MetaPlugin for UserMetaPlugin { pub struct GidMetaPlugin { meta_name: String, is_saved: bool, - outputs: std::collections::HashMap, - options: std::collections::HashMap, + base: crate::meta_plugin::BaseMetaPlugin, } impl GidMetaPlugin { @@ -310,7 +309,7 @@ impl GidMetaPlugin { // Start with default outputs let mut final_outputs = std::collections::HashMap::new(); - let default_outputs = Self::default().default_outputs(); + let default_outputs = vec!["gid".to_string()]; for output_name in default_outputs { final_outputs.insert(output_name.clone(), serde_yaml::Value::String(output_name)); } @@ -320,11 +319,14 @@ impl GidMetaPlugin { } } + let mut base = crate::meta_plugin::BaseMetaPlugin::new(); + base.outputs = final_outputs; + base.options = final_options; + GidMetaPlugin { meta_name: "gid".to_string(), is_saved: false, - outputs: final_outputs, - options: final_options, + base, } } @@ -356,11 +358,11 @@ impl MetaPlugin for GidMetaPlugin { } fn outputs(&self) -> &std::collections::HashMap { - &self.outputs + self.base.outputs() } fn outputs_mut(&mut self) -> &mut std::collections::HashMap { - &mut self.outputs + self.base.outputs_mut() } fn default_outputs(&self) -> Vec { @@ -372,15 +374,11 @@ impl MetaPlugin for GidMetaPlugin { } fn options(&self) -> &std::collections::HashMap { - &self.options + self.base.options() } fn options_mut(&mut self) -> &mut std::collections::HashMap { - &mut self.options - } - - fn options_mut(&mut self) -> &mut std::collections::HashMap { - &mut self.options + self.base.options_mut() } } @@ -388,8 +386,7 @@ impl MetaPlugin for GidMetaPlugin { pub struct GroupMetaPlugin { meta_name: String, is_saved: bool, - outputs: std::collections::HashMap, - options: std::collections::HashMap, + base: crate::meta_plugin::BaseMetaPlugin, } impl GroupMetaPlugin { @@ -407,7 +404,7 @@ impl GroupMetaPlugin { // Start with default outputs let mut final_outputs = std::collections::HashMap::new(); - let default_outputs = Self::default().default_outputs(); + let default_outputs = vec!["group".to_string()]; for output_name in default_outputs { final_outputs.insert(output_name.clone(), serde_yaml::Value::String(output_name)); } @@ -417,11 +414,14 @@ impl GroupMetaPlugin { } } + let mut base = crate::meta_plugin::BaseMetaPlugin::new(); + base.outputs = final_outputs; + base.options = final_options; + GroupMetaPlugin { meta_name: "group".to_string(), is_saved: false, - outputs: final_outputs, - options: final_options, + base, } } @@ -456,11 +456,11 @@ impl MetaPlugin for GroupMetaPlugin { } fn outputs(&self) -> &std::collections::HashMap { - &self.outputs + self.base.outputs() } fn outputs_mut(&mut self) -> &mut std::collections::HashMap { - &mut self.outputs + self.base.outputs_mut() } fn default_outputs(&self) -> Vec { @@ -472,11 +472,11 @@ impl MetaPlugin for GroupMetaPlugin { } fn options(&self) -> &std::collections::HashMap { - &self.options + self.base.options() } fn options_mut(&mut self) -> &mut std::collections::HashMap { - &mut self.options + self.base.options_mut() } }