subtr_actor/stats/export/
speed_flip.rs1use crate::*;
2
3use super::*;
4
5impl StatFieldProvider for SpeedFlipStats {
6 fn visit_stat_fields(&self, visitor: &mut dyn FnMut(ExportedStat)) {
7 visitor(ExportedStat::unsigned(
8 "speed_flip",
9 "count",
10 StatUnit::Count,
11 self.count,
12 ));
13 visitor(ExportedStat::unsigned(
14 "speed_flip",
15 "high_confidence_count",
16 StatUnit::Count,
17 self.high_confidence_count,
18 ));
19 visitor(ExportedStat::unsigned(
20 "speed_flip",
21 "is_last_speed_flip",
22 StatUnit::Count,
23 u32::from(self.is_last_speed_flip),
24 ));
25 if let Some(value) = self.last_speed_flip_time {
26 visitor(ExportedStat::float(
27 "speed_flip",
28 "last_speed_flip_time",
29 StatUnit::Seconds,
30 value,
31 ));
32 }
33 if let Some(value) = self.last_speed_flip_frame {
34 visitor(ExportedStat::unsigned(
35 "speed_flip",
36 "last_speed_flip_frame",
37 StatUnit::Count,
38 u32::try_from(value).unwrap_or(u32::MAX),
39 ));
40 }
41 if let Some(value) = self.time_since_last_speed_flip {
42 visitor(ExportedStat::float(
43 "speed_flip",
44 "time_since_last_speed_flip",
45 StatUnit::Seconds,
46 value,
47 ));
48 }
49 if let Some(value) = self.frames_since_last_speed_flip {
50 visitor(ExportedStat::unsigned(
51 "speed_flip",
52 "frames_since_last_speed_flip",
53 StatUnit::Count,
54 u32::try_from(value).unwrap_or(u32::MAX),
55 ));
56 }
57 if let Some(value) = self.last_quality {
58 visitor(ExportedStat::float(
59 "speed_flip",
60 "last_quality",
61 StatUnit::Percent,
62 value * 100.0,
63 ));
64 }
65 visitor(ExportedStat::float(
66 "speed_flip",
67 "average_quality",
68 StatUnit::Percent,
69 self.average_quality() * 100.0,
70 ));
71 visitor(ExportedStat::float(
72 "speed_flip",
73 "best_quality",
74 StatUnit::Percent,
75 self.best_quality * 100.0,
76 ));
77 }
78}