subtr_actor/stats/export/
wall_aerial.rs1use crate::*;
2
3use super::*;
4
5impl StatFieldProvider for WallAerialStats {
6 fn visit_stat_fields(&self, visitor: &mut dyn FnMut(ExportedStat)) {
7 visitor(ExportedStat::unsigned(
8 "wall_aerial",
9 "count",
10 StatUnit::Count,
11 self.count,
12 ));
13 visitor(ExportedStat::unsigned(
14 "wall_aerial",
15 "high_confidence_count",
16 StatUnit::Count,
17 self.high_confidence_count,
18 ));
19 visitor(ExportedStat::unsigned(
20 "wall_aerial",
21 "is_last_wall_aerial",
22 StatUnit::Count,
23 u32::from(self.is_last_wall_aerial),
24 ));
25 if let Some(value) = self.last_wall_aerial_time {
26 visitor(ExportedStat::float(
27 "wall_aerial",
28 "last_wall_aerial_time",
29 StatUnit::Seconds,
30 value,
31 ));
32 }
33 if let Some(value) = self.last_wall_aerial_frame {
34 visitor(ExportedStat::unsigned(
35 "wall_aerial",
36 "last_wall_aerial_frame",
37 StatUnit::Count,
38 u32::try_from(value).unwrap_or(u32::MAX),
39 ));
40 }
41 if let Some(value) = self.time_since_last_wall_aerial {
42 visitor(ExportedStat::float(
43 "wall_aerial",
44 "time_since_last_wall_aerial",
45 StatUnit::Seconds,
46 value,
47 ));
48 }
49 if let Some(value) = self.frames_since_last_wall_aerial {
50 visitor(ExportedStat::unsigned(
51 "wall_aerial",
52 "frames_since_last_wall_aerial",
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 "wall_aerial",
60 "last_confidence",
61 StatUnit::Percent,
62 value * 100.0,
63 ));
64 }
65 visitor(ExportedStat::float(
66 "wall_aerial",
67 "average_confidence",
68 StatUnit::Percent,
69 self.average_confidence() * 100.0,
70 ));
71 visitor(ExportedStat::float(
72 "wall_aerial",
73 "best_confidence",
74 StatUnit::Percent,
75 self.best_confidence * 100.0,
76 ));
77 visitor(ExportedStat::float(
78 "wall_aerial",
79 "average_setup_duration",
80 StatUnit::Seconds,
81 self.average_setup_duration(),
82 ));
83 visitor(ExportedStat::float(
84 "wall_aerial",
85 "average_takeoff_to_touch_time",
86 StatUnit::Seconds,
87 self.average_takeoff_to_touch_time(),
88 ));
89 visitor(ExportedStat::float(
90 "wall_aerial",
91 "average_touch_height",
92 StatUnit::UnrealUnits,
93 self.average_touch_height(),
94 ));
95 }
96}