diff options
| author | Daniel <kingdread@gmx.de> | 2020-05-13 12:52:13 +0200 | 
|---|---|---|
| committer | Daniel <kingdread@gmx.de> | 2020-05-13 12:52:13 +0200 | 
| commit | 331d6b1762d1d9431b210fc98a495d56ad7a1cd1 (patch) | |
| tree | 24345d05808eaa0f034b5b33c3d335624b0111c6 | |
| parent | 279fed9f175a84799f37ffb3fbb22b64313f8c47 (diff) | |
| download | raidgrep-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.lalrpop | 1 | ||||
| -rw-r--r-- | src/fexpr/mod.rs | 2 | ||||
| -rw-r--r-- | src/filters/player.rs | 13 | ||||
| -rw-r--r-- | src/main.rs | 24 | 
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 {  | 
