subtr_actor/stats/export/
core.rs1use crate::*;
2
3use super::*;
4
5impl StatFieldProvider for CorePlayerStats {
6 fn visit_stat_fields(&self, visitor: &mut dyn FnMut(ExportedStat)) {
7 visitor(ExportedStat::signed(
8 "core",
9 "score",
10 StatUnit::Count,
11 self.score,
12 ));
13 visitor(ExportedStat::signed(
14 "core",
15 "goals",
16 StatUnit::Count,
17 self.goals,
18 ));
19 visitor(ExportedStat::signed(
20 "core",
21 "assists",
22 StatUnit::Count,
23 self.assists,
24 ));
25 visitor(ExportedStat::signed(
26 "core",
27 "saves",
28 StatUnit::Count,
29 self.saves,
30 ));
31 visitor(ExportedStat::signed(
32 "core",
33 "shots",
34 StatUnit::Count,
35 self.shots,
36 ));
37 visitor(ExportedStat::unsigned(
38 "core",
39 "goals_conceded_while_last_defender",
40 StatUnit::Count,
41 self.scoring_context.goals_conceded_while_last_defender,
42 ));
43 visitor(ExportedStat::float(
44 "core",
45 "average_goal_time_after_kickoff",
46 StatUnit::Seconds,
47 self.average_goal_time_after_kickoff(),
48 ));
49 visitor(ExportedStat::float(
50 "core",
51 "median_goal_time_after_kickoff",
52 StatUnit::Seconds,
53 self.median_goal_time_after_kickoff(),
54 ));
55 visitor(ExportedStat::unsigned(
56 "core",
57 "kickoff_goal_count",
58 StatUnit::Count,
59 self.scoring_context.goal_after_kickoff.kickoff_goal_count,
60 ));
61 visitor(ExportedStat::unsigned(
62 "core",
63 "short_goal_count",
64 StatUnit::Count,
65 self.scoring_context.goal_after_kickoff.short_goal_count,
66 ));
67 visitor(ExportedStat::unsigned(
68 "core",
69 "medium_goal_count",
70 StatUnit::Count,
71 self.scoring_context.goal_after_kickoff.medium_goal_count,
72 ));
73 visitor(ExportedStat::unsigned(
74 "core",
75 "long_goal_count",
76 StatUnit::Count,
77 self.scoring_context.goal_after_kickoff.long_goal_count,
78 ));
79 visitor(ExportedStat::float(
80 "core",
81 "shooting_percentage",
82 StatUnit::Percent,
83 self.shooting_percentage(),
84 ));
85 visitor(ExportedStat::unsigned(
86 "core",
87 "counter_attack_goal_count",
88 StatUnit::Count,
89 self.scoring_context.goal_buildup.counter_attack_goal_count,
90 ));
91 visitor(ExportedStat::unsigned(
92 "core",
93 "sustained_pressure_goal_count",
94 StatUnit::Count,
95 self.scoring_context
96 .goal_buildup
97 .sustained_pressure_goal_count,
98 ));
99 visitor(ExportedStat::unsigned(
100 "core",
101 "other_buildup_goal_count",
102 StatUnit::Count,
103 self.scoring_context.goal_buildup.other_buildup_goal_count,
104 ));
105 }
106}
107
108impl StatFieldProvider for CoreTeamStats {
109 fn visit_stat_fields(&self, visitor: &mut dyn FnMut(ExportedStat)) {
110 visitor(ExportedStat::signed(
111 "core",
112 "score",
113 StatUnit::Count,
114 self.score,
115 ));
116 visitor(ExportedStat::signed(
117 "core",
118 "goals",
119 StatUnit::Count,
120 self.goals,
121 ));
122 visitor(ExportedStat::signed(
123 "core",
124 "assists",
125 StatUnit::Count,
126 self.assists,
127 ));
128 visitor(ExportedStat::signed(
129 "core",
130 "saves",
131 StatUnit::Count,
132 self.saves,
133 ));
134 visitor(ExportedStat::signed(
135 "core",
136 "shots",
137 StatUnit::Count,
138 self.shots,
139 ));
140 visitor(ExportedStat::float(
141 "core",
142 "average_goal_time_after_kickoff",
143 StatUnit::Seconds,
144 self.average_goal_time_after_kickoff(),
145 ));
146 visitor(ExportedStat::float(
147 "core",
148 "median_goal_time_after_kickoff",
149 StatUnit::Seconds,
150 self.median_goal_time_after_kickoff(),
151 ));
152 visitor(ExportedStat::unsigned(
153 "core",
154 "kickoff_goal_count",
155 StatUnit::Count,
156 self.scoring_context.goal_after_kickoff.kickoff_goal_count,
157 ));
158 visitor(ExportedStat::unsigned(
159 "core",
160 "short_goal_count",
161 StatUnit::Count,
162 self.scoring_context.goal_after_kickoff.short_goal_count,
163 ));
164 visitor(ExportedStat::unsigned(
165 "core",
166 "medium_goal_count",
167 StatUnit::Count,
168 self.scoring_context.goal_after_kickoff.medium_goal_count,
169 ));
170 visitor(ExportedStat::unsigned(
171 "core",
172 "long_goal_count",
173 StatUnit::Count,
174 self.scoring_context.goal_after_kickoff.long_goal_count,
175 ));
176 visitor(ExportedStat::float(
177 "core",
178 "shooting_percentage",
179 StatUnit::Percent,
180 self.shooting_percentage(),
181 ));
182 visitor(ExportedStat::unsigned(
183 "core",
184 "counter_attack_goal_count",
185 StatUnit::Count,
186 self.scoring_context.goal_buildup.counter_attack_goal_count,
187 ));
188 visitor(ExportedStat::unsigned(
189 "core",
190 "sustained_pressure_goal_count",
191 StatUnit::Count,
192 self.scoring_context
193 .goal_buildup
194 .sustained_pressure_goal_count,
195 ));
196 visitor(ExportedStat::unsigned(
197 "core",
198 "other_buildup_goal_count",
199 StatUnit::Count,
200 self.scoring_context.goal_buildup.other_buildup_goal_count,
201 ));
202 }
203}