diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/filters.rs | 34 | 
1 files changed, 14 insertions, 20 deletions
| diff --git a/src/filters.rs b/src/filters.rs index 715e4e4..cdd8f36 100644 --- a/src/filters.rs +++ b/src/filters.rs @@ -1,10 +1,10 @@ -use evtclib::{Agent, AgentName};  use evtclib::raw::parser::PartialEvtc;  use evtclib::statistics::gamedata::Boss; +use evtclib::{Agent, AgentName};  use num_traits::FromPrimitive; -use super::{SearchField, LogResult, Opt, guilds}; +use super::{guilds, LogResult, Opt, SearchField};  use chrono::Datelike; @@ -12,22 +12,18 @@ use chrono::Datelike;  pub fn filter_name(evtc: &PartialEvtc, opt: &Opt) -> bool {      for player in &evtc.agents {          let fancy = Agent::from_raw(player); -        if fancy.is_err() { -            continue; -        } -        match fancy.unwrap().name() { -            AgentName::Player { -                ref account_name, -                ref character_name, -                .. -            } => { -                if (opt.field.contains(&SearchField::Account) && opt.expression.is_match(account_name)) -                    || (opt.field.contains(&SearchField::Character) && opt.expression.is_match(character_name)) -                { -                    return true; -                } +        if let Ok(AgentName::Player { +            ref account_name, +            ref character_name, +            .. +        }) = fancy.as_ref().map(Agent::name) +        { +            if (opt.field.contains(&SearchField::Account) && opt.expression.is_match(account_name)) +                || (opt.field.contains(&SearchField::Character) +                    && opt.expression.is_match(character_name)) +            { +                return true;              } -            _ => (),          }      }      // Don't throw away the log yet if we are searching for guilds @@ -37,9 +33,7 @@ pub fn filter_name(evtc: &PartialEvtc, opt: &Opt) -> bool {  /// Do filtering based on the boss ID.  pub fn filter_boss(evtc: &PartialEvtc, opt: &Opt) -> bool {      let boss = Boss::from_u16(evtc.header.combat_id); -    boss -        .map(|b| opt.bosses.contains(&b)) -        .unwrap_or(true) +    boss.map(|b| opt.bosses.contains(&b)).unwrap_or(true)  }  /// Do filtering based on the fight outcome. | 
