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