diff --git a/src/modules/character.rs b/src/modules/character.rs index 17b373a9..879667f0 100644 --- a/src/modules/character.rs +++ b/src/modules/character.rs @@ -22,10 +22,8 @@ pub fn module<'a>(context: &'a Context) -> Option> { let config: CharacterConfig = CharacterConfig::try_load(module.config); let props = &context.properties; - let exit_code_default = String::from("0"); - let exit_code = props.get("status_code").unwrap_or(&exit_code_default); - let keymap_default = String::from("viins"); - let keymap = props.get("keymap").unwrap_or(&keymap_default); + let exit_code = props.get("status_code").map(String::as_str).unwrap_or("0"); + let keymap = props.get("keymap").map(String::as_str).unwrap_or("viins"); let exit_success = exit_code == "0"; // Match shell "keymap" names to normalized vi modes @@ -33,7 +31,7 @@ pub fn module<'a>(context: &'a Context) -> Option> { // Unfortunately, this is also the name of the non-vi default mode. // We do some environment detection in src/init.rs to translate. // The result: in non-vi fish, keymap is always reported as "insert" - let mode = match (&context.shell, keymap.as_str()) { + let mode = match (&context.shell, keymap) { (Shell::Fish, "default") | (Shell::Zsh, "vicmd") => ShellEditMode::Normal, _ => ASSUMED_MODE, }; diff --git a/src/modules/jobs.rs b/src/modules/jobs.rs index e045ec0f..17236f7d 100644 --- a/src/modules/jobs.rs +++ b/src/modules/jobs.rs @@ -11,7 +11,8 @@ pub fn module<'a>(context: &'a Context) -> Option> { let props = &context.properties; let num_of_jobs = props .get("jobs") - .unwrap_or(&"0".into()) + .map(String::as_str) + .unwrap_or("0") .trim() .parse::() .ok()?;