diff --git a/gamelog/src/error.rs b/gamelog/src/error.rs index 709783d..c3e135f 100644 --- a/gamelog/src/error.rs +++ b/gamelog/src/error.rs @@ -27,21 +27,3 @@ impl fmt::Display for TeamsError { } } } - -#[derive(Debug)] -pub struct NoTeamAttribute; - -impl fmt::Display for NoTeamAttribute { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - write!(f, "Object has no team definition.") - } -} - -#[derive(Debug)] -pub struct CannotDetermineTeams; - -impl fmt::Display for CannotDetermineTeams { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - write!(f, "Cannot determine teams present.") - } -} diff --git a/gamelog/src/event.rs b/gamelog/src/event.rs index 08f5594..12b6af6 100644 --- a/gamelog/src/event.rs +++ b/gamelog/src/event.rs @@ -1,4 +1,4 @@ -use crate::{Down, Play, Quarter, TerrainState, error}; +use crate::{Down, Play, Quarter, TerrainState}; use serde::Deserialize; type Offence = Team; @@ -73,11 +73,11 @@ impl Event { /// Returns the team for variants which possess this attribute. /// Errors if `self` has no team attribute. - pub fn team(&self) -> Result { + pub fn team(&self) -> Option { match self { - Self::Kickoff(team) => Ok(team.to_owned()), - Self::Turnover(team) => Ok(team.to_owned()), - _ => Err(error::NoTeamAttribute), + Self::Kickoff(team) => Some(team.to_owned()), + Self::Turnover(team) => Some(team.to_owned()), + _ => None, } } diff --git a/gamelog/src/game.rs b/gamelog/src/game.rs index 842875b..6da7012 100644 --- a/gamelog/src/game.rs +++ b/gamelog/src/game.rs @@ -27,7 +27,7 @@ impl Game { let mut teams = vec![]; self.events.iter().for_each(|event| { - if let Ok(team) = event.team() { + if let Some(team) = event.team() { if !ignore.contains(&team) && !teams.contains(&team) { teams.push(team) }