Skip to main content

subtr_actor/stats/export/
flick.rs

1use crate::*;
2
3use super::*;
4
5impl StatFieldProvider for FlickStats {
6    fn visit_stat_fields(&self, visitor: &mut dyn FnMut(ExportedStat)) {
7        visitor(ExportedStat::unsigned(
8            "flick",
9            "count",
10            StatUnit::Count,
11            self.count,
12        ));
13        visitor(ExportedStat::unsigned(
14            "flick",
15            "high_confidence_count",
16            StatUnit::Count,
17            self.high_confidence_count,
18        ));
19        visitor(ExportedStat::unsigned(
20            "flick",
21            "is_last_flick",
22            StatUnit::Count,
23            u32::from(self.is_last_flick),
24        ));
25        if let Some(value) = self.last_flick_time {
26            visitor(ExportedStat::float(
27                "flick",
28                "last_flick_time",
29                StatUnit::Seconds,
30                value,
31            ));
32        }
33        if let Some(value) = self.last_flick_frame {
34            visitor(ExportedStat::unsigned(
35                "flick",
36                "last_flick_frame",
37                StatUnit::Count,
38                u32::try_from(value).unwrap_or(u32::MAX),
39            ));
40        }
41        if let Some(value) = self.time_since_last_flick {
42            visitor(ExportedStat::float(
43                "flick",
44                "time_since_last_flick",
45                StatUnit::Seconds,
46                value,
47            ));
48        }
49        if let Some(value) = self.frames_since_last_flick {
50            visitor(ExportedStat::unsigned(
51                "flick",
52                "frames_since_last_flick",
53                StatUnit::Count,
54                u32::try_from(value).unwrap_or(u32::MAX),
55            ));
56        }
57        if let Some(value) = self.last_confidence {
58            visitor(ExportedStat::float(
59                "flick",
60                "last_confidence",
61                StatUnit::Percent,
62                value * 100.0,
63            ));
64        }
65        visitor(ExportedStat::float(
66            "flick",
67            "average_confidence",
68            StatUnit::Percent,
69            self.average_confidence() * 100.0,
70        ));
71        visitor(ExportedStat::float(
72            "flick",
73            "best_confidence",
74            StatUnit::Percent,
75            self.best_confidence * 100.0,
76        ));
77        visitor(ExportedStat::float(
78            "flick",
79            "average_setup_duration",
80            StatUnit::Seconds,
81            self.average_setup_duration(),
82        ));
83        visitor(ExportedStat::float(
84            "flick",
85            "average_ball_speed_change",
86            StatUnit::UnrealUnitsPerSecond,
87            self.average_ball_speed_change(),
88        ));
89        for entry in self.complete_labeled_event_counts().entries {
90            visitor(ExportedStat::unsigned_labeled(
91                "flick",
92                "count",
93                StatUnit::Count,
94                entry.labels,
95                entry.count,
96            ));
97        }
98    }
99}