diff options
Diffstat (limited to 'src/filters.rs')
-rw-r--r-- | src/filters.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/filters.rs b/src/filters.rs index 8433690..02334bc 100644 --- a/src/filters.rs +++ b/src/filters.rs @@ -1,5 +1,8 @@ use evtclib::{Agent, AgentName}; use evtclib::raw::parser::PartialEvtc; +use evtclib::statistics::gamedata::Boss; + +use num_traits::FromPrimitive; use super::{SearchField, LogResult, Opt}; @@ -30,6 +33,14 @@ pub fn filter_name(evtc: &PartialEvtc, opt: &Opt) -> bool { false } +/// 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) +} + /// Do filtering based on the fight outcome. pub fn filter_outcome(result: &LogResult, opt: &Opt) -> bool { opt.outcome.contains(&result.outcome) |