From 0b289b69567ce4b8f51009ee8aa273f8676ecfdb Mon Sep 17 00:00:00 2001 From: Adrian Malacoda Date: Wed, 17 May 2017 21:23:00 -0500 Subject: [PATCH] prefer if let where possible, removes empty blocks and reduces nesting --- src/modules/autolink.rs | 89 ++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 54 deletions(-) diff --git a/src/modules/autolink.rs b/src/modules/autolink.rs index 4b9bb93..2780ac6 100644 --- a/src/modules/autolink.rs +++ b/src/modules/autolink.rs @@ -12,7 +12,7 @@ use stc::Link; use stc::searchers::{Searcher, AggregateSearcher}; use stc::searchers::yugioh::{YugiohCard, YugiohSearcher}; use stc::searchers::mtg::{MtgCard, MtgSearcher}; -use stc::searchers::mediawiki::{WikiPage, MediawikiSearcher}; +use stc::searchers::mediawiki::MediawikiSearcher; use regex::Regex; @@ -30,67 +30,51 @@ impl AutolinkModule { fn print_mtg_card (card: &MtgCard, message: &Message) { message.reply(&format!("{}", card.image_url)); - message.reply(&format!("**{}** (**{}**)", card.name, card.cost)); + + if let Some(ref cost) = card.cost { + message.reply(&format!("**{}** (**{}**)", card.name, cost)); + } else { + message.reply(&format!("**{}**", card.name)); + } + message.reply(&format!("**{}**", card.typeline)); message.reply(&format!("{}", card.rules)); - match card.flavor { - Some(ref flavor) => message.reply(&format!("*{}*", flavor)), - None => {} + if let Some(ref flavor) = card.flavor { + message.reply(&format!("*{}*", flavor)); } // 12 March 2017: Is there a better way to do this? - match card.power { - Some(ref power) => { - match card.toughness { - Some(ref toughness) => { - message.reply(&format!("{}/{}", power, toughness)); - }, - None => {} - } + if let Some(ref power) = card.power { + if let Some(ref toughness) = card.toughness { + message.reply(&format!("{}/{}", power, toughness)); } - None => {} } } fn print_ygo_card (card: &YugiohCard, message: &Message) { - match card.family { - Some(ref family) => { - message.reply(&format!("**{}** ({})", card.name, family)); - }, - None => { - message.reply(&format!("**{}**", card.name)); - } + if let Some(ref family) = card.family { + message.reply(&format!("**{}** ({})", card.name, family)); + } else { + message.reply(&format!("**{}**", card.name)); } - match card.level { - Some(ref level) => { - message.reply(&format!("**Level**: {}", level)); - } - None => {} + if let Some(ref level) = card.level { + message.reply(&format!("**Level**: {}", level)); } - match card.subtype { - Some(ref subtype) => { - message.reply(&format!("**{} - {}**", card.card_type, subtype)); - } - None => { - message.reply(&format!("**{}**", card.card_type)); - } + if let Some(ref subtype) = card.subtype { + message.reply(&format!("**{} - {}**", card.card_type, subtype)); + } else { + message.reply(&format!("**{}**", card.card_type)); } message.reply(&format!("{}", card.text)); - match card.atk { - Some(ref atk) => { - match card.def { - Some(ref def) => { - message.reply(&format!("{}/{}", atk, def)); - }, - None => {} - } + if let Some(ref atk) = card.atk { + if let Some(ref def) = card.def { + message.reply(&format!("{}/{}", atk, def)); } - None => {} } } @@ -112,21 +96,18 @@ impl EventLoop for AutolinkModule { loop { match receiver.recv() { Ok(envelope) => { - match envelope.event { - Event::Message { ref message } => { - debug!("Received message from module {:?}... {:?}", envelope.from, message.content); - for cap in link_regex.captures_iter(&message.content) { - if let Some(item) = searchers.exact_search(&cap[1]) { - print_any_link(&item, message); - if let Some(card) = item.downcast_ref::() { - print_mtg_card(card, message); - } else if let Some(card) = item.downcast_ref::() { - print_ygo_card(card, message); - } + if let Event::Message { ref message } = envelope.event { + debug!("Received message from module {:?}... {:?}", envelope.from, message.content); + for cap in link_regex.captures_iter(&message.content) { + if let Some(item) = searchers.exact_search(&cap[1]) { + print_any_link(&item, message); + if let Some(card) = item.downcast_ref::() { + print_mtg_card(card, message); + } else if let Some(card) = item.downcast_ref::() { + print_ygo_card(card, message); } } } - _ => () } } Err(error) => { error!("Error {:?}", error) }