aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel <kingdread@gmx.de>2020-05-13 12:52:13 +0200
committerDaniel <kingdread@gmx.de>2020-05-13 12:52:13 +0200
commit331d6b1762d1d9431b210fc98a495d56ad7a1cd1 (patch)
tree24345d05808eaa0f034b5b33c3d335624b0111c6
parent279fed9f175a84799f37ffb3fbb22b64313f8c47 (diff)
downloadraidgrep-331d6b1762d1d9431b210fc98a495d56ad7a1cd1.tar.gz
raidgrep-331d6b1762d1d9431b210fc98a495d56ad7a1cd1.tar.bz2
raidgrep-331d6b1762d1d9431b210fc98a495d56ad7a1cd1.zip
clean up SearchField related code
With the addition of our own parser, we no longer need the FromStr implementation for SearchField. Furthermore, it is now only used in player::NameFilter, so the definition has been moved there. The import in the grammar was unused as well, so it has been removed.
-rw-r--r--src/fexpr/grammar.lalrpop1
-rw-r--r--src/fexpr/mod.rs2
-rw-r--r--src/filters/player.rs13
-rw-r--r--src/main.rs24
4 files changed, 13 insertions, 27 deletions
diff --git a/src/fexpr/grammar.lalrpop b/src/fexpr/grammar.lalrpop
index 6a7a9a0..45f4fde 100644
--- a/src/fexpr/grammar.lalrpop
+++ b/src/fexpr/grammar.lalrpop
@@ -4,7 +4,6 @@ use super::{
FightOutcome,
filters,
PlayerClass,
- SearchField,
};
use evtclib::Boss;
use std::collections::HashSet;
diff --git a/src/fexpr/mod.rs b/src/fexpr/mod.rs
index 452d66c..c6a3a39 100644
--- a/src/fexpr/mod.rs
+++ b/src/fexpr/mod.rs
@@ -3,7 +3,7 @@
//! This module contains methods to parse a given string into an abstract filter tree, check its
//! type and convert it to a [`Filter`][super::filters::Filter].
// Make it available in the grammar mod.
-use super::{filters, playerclass::PlayerClass, FightOutcome, SearchField};
+use super::{filters, playerclass::PlayerClass, FightOutcome};
use std::{error, fmt};
diff --git a/src/filters/player.rs b/src/filters/player.rs
index 2b14eb0..d3185e0 100644
--- a/src/filters/player.rs
+++ b/src/filters/player.rs
@@ -3,7 +3,7 @@
//! Additionally, it provides methods to lift a player filter to a log filter with [`any`][any] and
//! [`all`][all].
use super::{
- super::{guilds, playerclass::PlayerClass, EarlyLogResult, LogResult, Player, SearchField},
+ super::{guilds, playerclass::PlayerClass, EarlyLogResult, LogResult, Player},
log::LogFilter,
Filter, Inclusion,
};
@@ -61,6 +61,17 @@ pub fn any(player_filter: Box<dyn PlayerFilter>) -> Box<dyn LogFilter> {
!all(!player_filter)
}
+/// A flag indicating which fields should be searched.
+#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+pub enum SearchField {
+ /// Only search the account name.
+ Account,
+ /// Only search the character name.
+ Character,
+ /// Only search the guild name or tag.
+ Guild,
+}
+
/// Filter that filters players according to their name.
///
/// The given SearchField determines in which field something should be searched.
diff --git a/src/main.rs b/src/main.rs
index 40f434c..ee1c232 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -101,30 +101,6 @@ pub struct Opt {
expression: Vec<String>,
}
-/// A flag indicating which fields should be searched.
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum SearchField {
- /// Only search the account name.
- Account,
- /// Only search the character name.
- Character,
- /// Only search the guild name or tag.
- Guild,
-}
-
-impl FromStr for SearchField {
- type Err = &'static str;
-
- fn from_str(s: &str) -> Result<Self, Self::Err> {
- match s {
- "account" => Ok(SearchField::Account),
- "character" => Ok(SearchField::Character),
- "guild" => Ok(SearchField::Guild),
- _ => Err("Must be account or character"),
- }
- }
-}
-
/// A log that matches the search criteria.
#[derive(Debug, Clone)]
pub struct LogResult {