Skip to main content

subtr_actor/stats/export/
speed_flip.rs

1use 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}