Skip to main content

mlb_api/requests/stats/wrappers/
accumulated_vs_team_seasonal.rs

1use crate::game_types::GameType;
2use crate::person::NamedPerson;
3use crate::season::SeasonId;
4use crate::stats::wrappers::{AccumulatedVsPlayerMatchup, BatterPiece, GameTypePiece, OpposingTeamPiece, PitcherPiece, SeasonPiece, TeamPiece};
5use crate::stats::{RawStat, SingletonSplitStat};
6use crate::team::NamedTeam;
7use derive_more::{Deref, DerefMut};
8use serde::Deserialize;
9
10#[derive(Debug, Deserialize, PartialEq, Eq, Clone, Deref, DerefMut)]
11#[serde(rename_all = "camelCase")]
12#[serde(bound = "T: RawStat")]
13pub struct AccumulatedVsTeamSeasonalPitcherSplit<T: RawStat> {
14	pub season: SeasonId,
15
16	#[deref]
17	#[deref_mut]
18	#[serde(flatten)]
19	inner: AccumulatedVsPlayerMatchup<T>,
20}
21
22impl<T: RawStat> OpposingTeamPiece for AccumulatedVsTeamSeasonalPitcherSplit<T> {
23	fn opposing_team(&self) -> &NamedTeam {
24		&self.opposing_team
25	}
26}
27
28impl<T: RawStat> GameTypePiece for AccumulatedVsTeamSeasonalPitcherSplit<T> {
29	fn game_type(&self) -> &GameType {
30		&self.game_type
31	}
32}
33
34impl<T: RawStat> TeamPiece for AccumulatedVsTeamSeasonalPitcherSplit<T> {
35	fn team(&self) -> &NamedTeam {
36		&self.team
37	}
38}
39
40impl<T: RawStat> PitcherPiece for AccumulatedVsTeamSeasonalPitcherSplit<T> {
41	fn pitcher(&self) -> &NamedPerson {
42		&self.pitcher
43	}
44}
45
46impl<T: RawStat> BatterPiece for AccumulatedVsTeamSeasonalPitcherSplit<T> {
47	fn batter(&self) -> &NamedPerson {
48		&self.batter
49	}
50}
51
52impl<T: RawStat> SeasonPiece for AccumulatedVsTeamSeasonalPitcherSplit<T> {
53	fn season(&self) -> &SeasonId {
54		&self.season
55	}
56}
57
58impl<T: RawStat> Default for AccumulatedVsTeamSeasonalPitcherSplit<T> {
59	fn default() -> Self {
60		Self {
61			season: SeasonId::current_season(),
62			
63			inner: AccumulatedVsPlayerMatchup::default(),
64		}
65	}
66}
67
68impl<T: RawStat> SingletonSplitStat for AccumulatedVsTeamSeasonalPitcherSplit<T> {}