From 8f68f68378dc6d5acb70b26fbecbd812664362d5 Mon Sep 17 00:00:00 2001 From: Victor Porof Date: Wed, 1 Feb 2017 12:03:34 +0100 Subject: [PATCH] Use idiomatic `map_or_else` calls to Option instead of double returns Signed-off-by: Victor Porof --- edn/src/types.rs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/edn/src/types.rs b/edn/src/types.rs index 4fb651ae..eb0af741 100644 --- a/edn/src/types.rs +++ b/edn/src/types.rs @@ -217,15 +217,13 @@ fn to_ord(value: &Value) -> i32 { pub struct Pair(Value, Value); pub fn to_symbol<'a, T: Into>>(namespace: T, name: &str) -> Value { - if let Some(ns) = namespace.into() { - return Value::NamespacedSymbol(symbols::NamespacedSymbol::new(ns, name)); - } - return Value::PlainSymbol(symbols::PlainSymbol::new(name)); + namespace.into().map_or_else( + || Value::PlainSymbol(symbols::PlainSymbol::new(name)), + |ns| Value::NamespacedSymbol(symbols::NamespacedSymbol::new(ns, name))) } pub fn to_keyword<'a, T: Into>>(namespace: T, name: &str) -> Value { - if let Some(ns) = namespace.into() { - return Value::NamespacedKeyword(symbols::NamespacedKeyword::new(ns, name)); - } - return Value::Keyword(symbols::Keyword::new(name)); -} + namespace.into().map_or_else( + || Value::Keyword(symbols::Keyword::new(name)), + |ns| Value::NamespacedKeyword(symbols::NamespacedKeyword::new(ns, name))) +} \ No newline at end of file