mlb_api/requests/stats/wrappers/
accumulated_vs_team_seasonal.rs1use 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> {}