aboutsummaryrefslogtreecommitdiff
path: root/src/filters.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/filters.rs')
-rw-r--r--src/filters.rs19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/filters.rs b/src/filters.rs
index d8d43ea..8433690 100644
--- a/src/filters.rs
+++ b/src/filters.rs
@@ -1,16 +1,21 @@
-use evtclib::{AgentName, Log};
+use evtclib::{Agent, AgentName};
+use evtclib::raw::parser::PartialEvtc;
use super::{SearchField, LogResult, Opt};
use chrono::Datelike;
/// Do filtering based on the character or account name.
-pub fn filter_name(log: &Log, opt: &Opt) -> bool {
- for player in log.players() {
- match player.name() {
+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 {
- account_name,
- character_name,
+ ref account_name,
+ ref character_name,
..
} => {
if (opt.field.contains(&SearchField::Account) && opt.expression.is_match(account_name))
@@ -19,7 +24,7 @@ pub fn filter_name(log: &Log, opt: &Opt) -> bool {
return true;
}
}
- _ => unreachable!(),
+ _ => (),
}
}
false