mlb_api/requests/meta/
situations.rs1use derive_more::Display;
2use serde::Deserialize;
3
4#[derive(Copy, Clone, Default, PartialEq, Eq)]
8pub enum SituationCodeFilter {
9 All,
11
12 #[default]
14 Any,
15}
16
17#[derive(Debug, Deserialize, PartialEq, Eq, Copy, Clone, Display)]
18pub enum SituationCodeCategory {
19 #[serde(rename = "Game")]
21 #[display("Game")]
22 Game,
23
24 #[serde(rename = "Month")]
26 #[display("Month")]
27 Month,
28
29 #[serde(rename = "Timeframe")]
31 #[display("Timeframe")]
32 Timeframe,
33
34 #[serde(rename = "Day")]
36 #[display("Day")]
37 DayOfWeek,
38
39 #[serde(rename = "Opponent")]
41 #[display("Opponent")]
42 Opponent,
43
44 #[serde(rename = "Venue")]
46 #[display("Venue")]
47 Venue,
48
49 #[serde(rename = "At-Bat")]
51 #[display("At-Bat")]
52 AtBat,
53
54 #[serde(rename = "Score")]
56 #[display("Score")]
57 GameScore,
58
59 #[serde(rename = "Inning")]
61 #[display("Inning")]
62 Inning,
63
64 #[serde(rename = "Result")]
66 #[display("Result")]
67 GameResult,
68
69 #[serde(rename = "Order")]
71 #[display("Order")]
72 BattingOrder,
73
74 #[serde(rename = "Runners")]
76 #[display("Runners")]
77 Runners,
78
79 #[serde(rename = "Position")]
81 #[display("Position")]
82 Position,
83
84 #[serde(rename = "Pitching")]
86 #[display("Pitching")]
87 Pitching,
88
89 #[serde(rename = "Pitch Count")]
91 #[display("Pitch Count")]
92 PitchCount,
93
94 #[serde(rename = "Outs")]
96 #[display("Outs")]
97 Outs,
98
99 #[serde(rename = "Count")]
101 #[display("Count")]
102 AtBatCount,
103
104 #[serde(rename = "Pitch Type")]
106 #[display("Pitch Type")]
107 PitchType,
108}
109
110id!(#[doc = "A [`String`] representing a situation, such as c00 for a 0-0 count"] SituationCodeId { code: String });
111
112#[allow(clippy::struct_excessive_bools, reason = "false positive")]
125#[derive(Debug, Deserialize, Clone)]
126pub struct SituationCode {
127 #[serde(rename = "navigationMenu", default)]
128 pub category: Option<SituationCodeCategory>,
129 pub description: String,
130 #[serde(rename = "team")]
132 pub is_team_active: bool,
133 #[serde(rename = "batting")]
135 pub is_batting_active: bool,
136 #[serde(rename = "fielding")]
138 pub is_fielding_active: bool,
139 #[serde(rename = "pitching")]
141 pub is_pitching_active: bool,
142 #[serde(flatten)]
143 pub id: SituationCodeId,
144}
145
146id_only_eq_impl!(SituationCode, id);
147meta_kind_impl!("situationCodes" => SituationCode);
148tiered_request_entry_cache_impl!(SituationCode.id: SituationCodeId);
149test_impl!(SituationCode);