Skip to main content

mlbt_api/
boxscore.rs

1use crate::live::Person;
2use serde::{Deserialize, Serialize};
3use std::collections::HashMap;
4
5#[derive(Default, Debug, Serialize, Deserialize)]
6pub struct Boxscore {
7    pub teams: Option<Teams>,
8    pub info: Option<Vec<LabelValue>>,
9}
10
11#[derive(Debug, Serialize, Deserialize)]
12pub struct Teams {
13    pub away: Team,
14    pub home: Team,
15}
16
17#[derive(Debug, Serialize, Deserialize)]
18#[serde(rename_all = "camelCase")]
19pub struct Team {
20    pub team: IdName,
21    pub team_stats: TeamStats,
22    pub players: HashMap<String, Player>,
23    pub batters: Vec<u64>,
24    pub pitchers: Vec<u64>,
25    bench: Vec<u64>,
26    bullpen: Vec<u64>,
27    pub batting_order: Vec<u64>,
28    pub season_stats: Option<TeamStats>,
29    pub info: Option<Vec<TeamInfo>>,
30    pub note: Option<Vec<LabelValue>>,
31}
32
33#[derive(Default, Debug, Serialize, Deserialize)]
34#[serde(rename_all = "camelCase")]
35pub struct IdName {
36    pub id: u16,
37    pub name: String,
38}
39
40#[derive(Default, Debug, Serialize, Deserialize)]
41#[serde(rename_all = "camelCase")]
42pub struct TeamInfo {
43    pub title: String,
44    pub field_list: Vec<LabelValue>,
45}
46
47#[derive(Default, Debug, Serialize, Deserialize)]
48#[serde(rename_all = "camelCase")]
49pub struct LabelValue {
50    pub label: String,
51    pub value: Option<String>,
52}
53
54#[derive(Debug, Serialize, Deserialize)]
55#[serde(rename_all = "camelCase")]
56pub struct Player {
57    pub person: Person,
58    pub position: Position,
59    pub batting_order: Option<String>,
60    pub stats: TeamStats,
61    pub season_stats: TeamStats,
62}
63
64#[derive(Debug, Serialize, Deserialize)]
65pub struct Position {
66    pub name: String,
67    pub abbreviation: String,
68    #[serde(rename = "type")]
69    pub position_type: String,
70}
71
72#[derive(Debug, Serialize, Deserialize)]
73pub struct TeamStats {
74    pub batting: Batting,
75    pub pitching: PitchingStats,
76    // fielding: Fielding,
77}
78
79#[derive(Debug, Serialize, Deserialize)]
80#[serde(rename_all = "camelCase")]
81pub struct Batting {
82    pub note: Option<String>,
83    pub summary: Option<String>,
84    games_played: Option<u16>,
85    pub runs: Option<u16>,
86    doubles: Option<u16>,
87    triples: Option<u16>,
88    home_runs: Option<u16>,
89    pub strike_outs: Option<u16>,
90    pub base_on_balls: Option<u16>,
91    pub hits: Option<u16>,
92    hit_by_pitch: Option<u16>,
93    pub avg: Option<String>,
94    pub at_bats: Option<u16>,
95    obp: Option<String>,
96    slg: Option<String>,
97    ops: Option<String>,
98    ground_into_double_play: Option<u16>,
99    ground_into_triple_play: Option<u16>,
100    pub plate_appearances: Option<u16>,
101    total_bases: Option<u16>,
102    pub rbi: Option<u16>,
103    pub left_on_base: Option<u16>,
104}
105
106#[derive(Debug, Serialize, Deserialize)]
107#[serde(rename_all = "camelCase")]
108pub struct PitchingStats {
109    pub summary: Option<String>,
110    pub note: Option<String>,
111    pub games_played: Option<i64>,
112    pub games_started: Option<i64>,
113    pub fly_outs: Option<i64>,
114    pub ground_outs: Option<i64>,
115    pub air_outs: Option<i64>,
116    pub runs: Option<i64>,
117    pub doubles: Option<i64>,
118    pub triples: Option<i64>,
119    pub home_runs: Option<i64>,
120    pub strike_outs: Option<i64>,
121    pub base_on_balls: Option<i64>,
122    pub intentional_walks: Option<i64>,
123    pub hits: Option<i64>,
124    pub hit_by_pitch: Option<i64>,
125    pub at_bats: Option<i64>,
126    pub caught_stealing: Option<i64>,
127    pub stolen_bases: Option<i64>,
128    pub stolen_base_percentage: Option<String>,
129    pub number_of_pitches: Option<i64>,
130    pub era: Option<String>,
131    pub innings_pitched: Option<String>,
132    pub wins: Option<i64>,
133    pub losses: Option<i64>,
134    pub saves: Option<i64>,
135    pub save_opportunities: Option<i64>,
136    pub holds: Option<i64>,
137    pub blown_saves: Option<i64>,
138    pub earned_runs: Option<i64>,
139    pub batters_faced: Option<i64>,
140    pub outs: Option<i64>,
141    pub games_pitched: Option<i64>,
142    pub complete_games: Option<i64>,
143    pub shutouts: Option<i64>,
144    pub pitches_thrown: Option<i64>,
145    pub balls: Option<i64>,
146    pub strikes: Option<i64>,
147    pub strike_percentage: Option<String>,
148    pub hit_batsmen: Option<i64>,
149    pub balks: Option<i64>,
150    pub wild_pitches: Option<i64>,
151    pub pickoffs: Option<i64>,
152    pub rbi: Option<i64>,
153    pub games_finished: Option<i64>,
154    pub runs_scored_per9: Option<String>,
155    pub home_runs_per9: Option<String>,
156    pub inherited_runners: Option<i64>,
157    pub inherited_runners_scored: Option<i64>,
158    pub catchers_interference: Option<i64>,
159    pub sac_bunts: Option<i64>,
160    pub sac_flies: Option<i64>,
161    pub passed_ball: Option<i64>,
162    pub pop_outs: Option<i64>,
163    pub line_outs: Option<i64>,
164}