diff --git a/espanso-render/src/extension/form.rs b/espanso-render/src/extension/form.rs index 11ca0cd..c75c75d 100644 --- a/espanso-render/src/extension/form.rs +++ b/espanso-render/src/extension/form.rs @@ -88,12 +88,12 @@ impl<'a> Extension for FormExtension<'a> { } // TODO: test -fn inject_scope(fields: &mut HashMap, scope: &HashMap<&str, ExtensionOutput>) -> () { - for (_, value) in fields { +fn inject_scope(fields: &mut HashMap, scope: &HashMap<&str, ExtensionOutput>) { + for value in fields.values_mut() { if let Value::Object(field_options) = value { if let Some(Value::String(default_value)) = field_options.get_mut("default") { if VAR_REGEX.is_match(default_value) { - match render_variables(&default_value, scope) { + match render_variables(default_value, scope) { Ok(rendered) => *default_value = rendered, Err(err) => error!( "error while injecting variable in form default value: {}", @@ -111,10 +111,3 @@ pub enum FormExtensionError { #[error("missing layout parameter")] MissingLayout, } - -#[cfg(test)] -mod tests { - use super::*; - - // TODO: test -} diff --git a/espanso-render/src/extension/script.rs b/espanso-render/src/extension/script.rs index 557406b..2ac9632 100644 --- a/espanso-render/src/extension/script.rs +++ b/espanso-render/src/extension/script.rs @@ -89,7 +89,7 @@ impl Extension for ScriptExtension { let mut command = Command::new(&args[0]); command.env("CONFIG", self.config_path.to_string_lossy().to_string()); - for (key, value) in super::util::convert_to_env_variables(&scope) { + for (key, value) in super::util::convert_to_env_variables(scope) { command.env(key, value); } diff --git a/espanso-render/src/extension/shell.rs b/espanso-render/src/extension/shell.rs index 9cdea6e..de99b1c 100644 --- a/espanso-render/src/extension/shell.rs +++ b/espanso-render/src/extension/shell.rs @@ -43,34 +43,34 @@ impl Shell { let mut command = match self { Shell::Cmd => { let mut command = Command::new("cmd"); - command.args(&["/C", &cmd]); + command.args(&["/C", cmd]); command } Shell::Powershell => { let mut command = Command::new("powershell"); - command.args(&["-Command", &cmd]); + command.args(&["-Command", cmd]); command } Shell::WSL => { is_wsl = true; let mut command = Command::new("bash"); - command.args(&["-c", &cmd]); + command.args(&["-c", cmd]); command } Shell::WSL2 => { is_wsl = true; let mut command = Command::new("wsl"); - command.args(&["bash", "-c", &cmd]); + command.args(&["bash", "-c", cmd]); command } Shell::Bash => { let mut command = Command::new("bash"); - command.args(&["-c", &cmd]); + command.args(&["-c", cmd]); command } Shell::Sh => { let mut command = Command::new("sh"); - command.args(&["-c", &cmd]); + command.args(&["-c", cmd]); command } }; @@ -87,8 +87,7 @@ impl Shell { // should be passed to linux. // For more information: https://devblogs.microsoft.com/commandline/share-environment-vars-between-wsl-and-windows/ if is_wsl { - let mut tokens: Vec<&str> = Vec::new(); - tokens.push("CONFIG/p"); + let mut tokens: Vec<&str> = vec!["CONFIG/p"]; // Add all the previous variables for (key, _) in vars.iter() { @@ -166,7 +165,7 @@ impl Extension for ShellExtension { Shell::default() }; - let mut env_variables = super::util::convert_to_env_variables(&scope); + let mut env_variables = super::util::convert_to_env_variables(scope); env_variables.insert( "CONFIG".to_string(), self.config_path.to_string_lossy().to_string(), diff --git a/espanso-render/src/lib.rs b/espanso-render/src/lib.rs index a07741d..b9932da 100644 --- a/espanso-render/src/lib.rs +++ b/espanso-render/src/lib.rs @@ -31,7 +31,7 @@ pub trait Renderer { -> RenderResult; } -pub fn create<'a>(extensions: Vec<&'a dyn Extension>) -> impl Renderer + 'a { +pub fn create(extensions: Vec<&dyn Extension>) -> impl Renderer + '_ { renderer::DefaultRenderer::new(extensions) } diff --git a/espanso-render/src/renderer/mod.rs b/espanso-render/src/renderer/mod.rs index a18dda4..1f25895 100644 --- a/espanso-render/src/renderer/mod.rs +++ b/espanso-render/src/renderer/mod.rs @@ -96,7 +96,7 @@ impl<'a> Renderer for DefaultRenderer<'a> { }) .collect() } else { - template.vars.iter().map(|var| var).collect() + template.vars.iter().collect() }; // The implicit global variables will be evaluated first, followed by the local vars @@ -154,7 +154,7 @@ impl<'a> Renderer for DefaultRenderer<'a> { match render_variables(&template.body, &scope) { Ok(output) => output, Err(error) => { - return RenderResult::Error(error.into()); + return RenderResult::Error(error); } } } else { @@ -196,7 +196,7 @@ impl<'a> Renderer for DefaultRenderer<'a> { pub(crate) fn render_variables(body: &str, scope: &Scope) -> Result { let mut replacing_error = None; let output = VAR_REGEX - .replace_all(&body, |caps: &Captures| { + .replace_all(body, |caps: &Captures| { let var_name = caps.name("name").unwrap().as_str(); let var_subname = caps.name("subname"); match scope.get(var_name) { @@ -230,7 +230,7 @@ pub(crate) fn render_variables(body: &str, scope: &Scope) -> Result { } }) .to_string(); - + if let Some(error) = replacing_error { return Err(error.into()); } @@ -282,24 +282,22 @@ mod tests { scope: &Scope, params: &crate::Params, ) -> ExtensionResult { - if let Some(value) = params.get("echo") { - if let Value::String(string) = value { - return ExtensionResult::Success(ExtensionOutput::Single(string.clone())); - } + if let Some(Value::String(string)) = params.get("echo") { + return ExtensionResult::Success(ExtensionOutput::Single(string.clone())); } // If the "read" param is present, echo the value of the corresponding result in the scope - if let Some(value) = params.get("read") { - if let Value::String(string) = value { + if let Some(Value::String(string)) = params.get("read") { if let Some(ExtensionOutput::Single(value)) = scope.get(string.as_str()) { return ExtensionResult::Success(ExtensionOutput::Single(value.to_string())); } - } } if params.get("abort").is_some() { return ExtensionResult::Aborted; } if params.get("error").is_some() { - return ExtensionResult::Error(RendererError::MissingVariable("missing".to_string()).into()); + return ExtensionResult::Error( + RendererError::MissingVariable("missing".to_string()).into(), + ); } ExtensionResult::Aborted } diff --git a/espanso-render/src/renderer/util.rs b/espanso-render/src/renderer/util.rs index 42aa41f..c2c3f28 100644 --- a/espanso-render/src/renderer/util.rs +++ b/espanso-render/src/renderer/util.rs @@ -22,7 +22,7 @@ use super::VAR_REGEX; pub(crate) fn get_body_variable_names(body: &str) -> HashSet<&str> { let mut variables = HashSet::new(); - for caps in VAR_REGEX.captures_iter(&body) { + for caps in VAR_REGEX.captures_iter(body) { let var_name = caps.name("name").unwrap().as_str(); variables.insert(var_name); }