From ea15e5582990a1fda1e73dc07c303c6a8f4a9dd2 Mon Sep 17 00:00:00 2001 From: Jeremy Stucki Date: Thu, 20 Jun 2019 14:18:17 +0200 Subject: [PATCH 1/6] Use map instead of match on Option --- src/config.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/config.rs b/src/config.rs index 59ae8ad0..0984c732 100644 --- a/src/config.rs +++ b/src/config.rs @@ -131,10 +131,8 @@ impl Config { pub fn update_from_env(&mut self) { debug!("Updating the config from environment variables"); - let overrides = env::vars().filter_map(|(key, value)| match parse_env(&key) { - Some(index) => Some((index, value)), - None => None, - }); + let overrides = + env::vars().filter_map(|(key, value)| parse_env(&key).map(|index| (index, value))); for (key, value) in overrides { trace!("{} => {}", key, value); From abba959add893a7fffd73ba84440cd372ad204bc Mon Sep 17 00:00:00 2001 From: Jeremy Stucki Date: Thu, 20 Jun 2019 14:18:27 +0200 Subject: [PATCH 2/6] Remove needless lifetime --- src/config.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.rs b/src/config.rs index 0984c732..10b0b570 100644 --- a/src/config.rs +++ b/src/config.rs @@ -156,7 +156,7 @@ impl Config { } /// Fetch a value from the `Config` so you can mutate it. - pub fn get_mut<'a>(&'a mut self, key: &str) -> Option<&'a mut Value> { + pub fn get_mut(&mut self, key: &str) -> Option<&mut Value> { match self.rest.read_mut(key) { Ok(inner) => inner, Err(_) => None, From a9dae326fafe44eac0a8803832f066028e65c04a Mon Sep 17 00:00:00 2001 From: Jeremy Stucki Date: Thu, 20 Jun 2019 14:27:57 +0200 Subject: [PATCH 3/6] Use unwrap_or instead of match on Result --- src/config.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/config.rs b/src/config.rs index 10b0b570..bfd00797 100644 --- a/src/config.rs +++ b/src/config.rs @@ -149,10 +149,7 @@ impl Config { /// `output.html.playpen` will fetch the "playpen" out of the html output /// table). pub fn get(&self, key: &str) -> Option<&Value> { - match self.rest.read(key) { - Ok(inner) => inner, - Err(_) => None, - } + self.rest.read(key).unwrap_or(None) } /// Fetch a value from the `Config` so you can mutate it. From 3a0eeb4bbb8d4e6f0f6e9b95089119e2127addca Mon Sep 17 00:00:00 2001 From: Jeremy Stucki Date: Thu, 20 Jun 2019 14:29:14 +0200 Subject: [PATCH 4/6] Remove needless scope --- src/config.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/config.rs b/src/config.rs index bfd00797..24c1f535 100644 --- a/src/config.rs +++ b/src/config.rs @@ -540,12 +540,10 @@ trait Updateable<'de>: Serialize + Deserialize<'de> { fn update_value(&mut self, key: &str, value: S) { let mut raw = Value::try_from(&self).expect("unreachable"); - { - if let Ok(value) = Value::try_from(value) { - let _ = raw.insert(key, value); - } else { - return; - } + if let Ok(value) = Value::try_from(value) { + let _ = raw.insert(key, value); + } else { + return; } if let Ok(updated) = raw.try_into() { From 592140db5bb3a8ec70a46e3ced0980f0812a2d92 Mon Sep 17 00:00:00 2001 From: Jeremy Stucki Date: Thu, 20 Jun 2019 14:56:47 +0200 Subject: [PATCH 5/6] Remove redundant closure --- src/config.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.rs b/src/config.rs index 24c1f535..4712f20a 100644 --- a/src/config.rs +++ b/src/config.rs @@ -203,7 +203,7 @@ impl Config { } else { self.rest .insert(index, value) - .map_err(|e| ErrorKind::TomlQueryError(e))?; + .map_err(ErrorKind::TomlQueryError)?; } Ok(()) From 92a7b0cdcd1202d4a020ff783a1c362f035eac69 Mon Sep 17 00:00:00 2001 From: Jeremy Stucki Date: Thu, 20 Jun 2019 15:12:56 +0200 Subject: [PATCH 6/6] Use iterator instead of for loop --- src/book/mod.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/book/mod.rs b/src/book/mod.rs index db5d11f3..830bf9db 100644 --- a/src/book/mod.rs +++ b/src/book/mod.rs @@ -343,18 +343,16 @@ impl MDBook { /// Look at the `Config` and try to figure out what renderers to use. fn determine_renderers(config: &Config) -> Vec> { - let mut renderers: Vec> = Vec::new(); + let mut renderers = Vec::new(); if let Some(output_table) = config.get("output").and_then(Value::as_table) { - for (key, table) in output_table.iter() { - // the "html" backend has its own Renderer + renderers.extend(output_table.iter().map(|(key, table)| { if key == "html" { - renderers.push(Box::new(HtmlHandlebars::new())); + Box::new(HtmlHandlebars::new()) as Box } else { - let renderer = interpret_custom_renderer(key, table); - renderers.push(renderer); + interpret_custom_renderer(key, table) } - } + })); } // if we couldn't find anything, add the HTML renderer as a default