diff --git a/opnsense-config/src/modules/node_exporter.rs b/opnsense-config/src/modules/node_exporter.rs index 9a44876..fd7ee5c 100644 --- a/opnsense-config/src/modules/node_exporter.rs +++ b/opnsense-config/src/modules/node_exporter.rs @@ -20,21 +20,20 @@ impl<'a> NodeExporterConfig<'a> { pub fn get_full_config(&self) -> &Option { &self.opnsense.opnsense.node_exporter } - fn with_node_exporter(&mut self, f: F) -> R + + fn with_node_exporter(&mut self, f: F) -> Result where F: FnOnce(&mut NodeExporter) -> R, { match &mut self.opnsense.opnsense.node_exporter.as_mut() { - Some(node_exporter) => f(node_exporter), - None => unimplemented!( - " - node exporter is not yet installed" - ), + Some(node_exporter) => Ok(f(node_exporter)), + None => Err("node exporter is not yet installed"), } } - pub fn enable(&mut self, enabled: bool) { + pub fn enable(&mut self, enabled: bool) -> Result<(), &'static str> { self.with_node_exporter(|node_exporter| node_exporter.enabled = enabled as u8) + .map(|_| ()) } pub async fn reload_restart(&self) -> Result<(), Error> {