subtr-actor 0.5.0

Rocket League replay transformer
Documentation
use crate::*;

use super::*;

impl StatFieldProvider for MovementStats {
    fn visit_stat_fields(&self, visitor: &mut dyn FnMut(ExportedStat)) {
        visitor(ExportedStat::float(
            "movement",
            "tracked_time",
            StatUnit::Seconds,
            self.tracked_time,
        ));
        for entry in self.complete_labeled_tracked_time().entries {
            visitor(ExportedStat::float_labeled(
                "movement",
                "tracked_time",
                StatUnit::Seconds,
                entry.labels,
                entry.value,
            ));
        }
        visitor(ExportedStat::float(
            "movement",
            "total_distance",
            StatUnit::UnrealUnits,
            self.total_distance,
        ));
        visitor(ExportedStat::float(
            "movement",
            "avg_speed",
            StatUnit::UnrealUnitsPerSecond,
            self.average_speed(),
        ));
        visitor(ExportedStat::float(
            "movement",
            "time_supersonic_speed",
            StatUnit::Seconds,
            self.time_supersonic_speed,
        ));
        visitor(ExportedStat::float(
            "movement",
            "time_boost_speed",
            StatUnit::Seconds,
            self.time_boost_speed,
        ));
        visitor(ExportedStat::float(
            "movement",
            "time_slow_speed",
            StatUnit::Seconds,
            self.time_slow_speed,
        ));
        visitor(ExportedStat::float(
            "movement",
            "time_ground",
            StatUnit::Seconds,
            self.time_on_ground,
        ));
        visitor(ExportedStat::float(
            "movement",
            "time_low_air",
            StatUnit::Seconds,
            self.time_low_air,
        ));
        visitor(ExportedStat::float(
            "movement",
            "time_high_air",
            StatUnit::Seconds,
            self.time_high_air,
        ));
        visitor(ExportedStat::float(
            "movement",
            "avg_speed_percentage",
            StatUnit::Percent,
            self.average_speed_pct(),
        ));
        visitor(ExportedStat::float(
            "movement",
            "percent_slow_speed",
            StatUnit::Percent,
            self.slow_speed_pct(),
        ));
        visitor(ExportedStat::float(
            "movement",
            "percent_boost_speed",
            StatUnit::Percent,
            self.boost_speed_pct(),
        ));
        visitor(ExportedStat::float(
            "movement",
            "percent_supersonic_speed",
            StatUnit::Percent,
            self.supersonic_speed_pct(),
        ));
        visitor(ExportedStat::float(
            "movement",
            "percent_ground",
            StatUnit::Percent,
            self.on_ground_pct(),
        ));
        visitor(ExportedStat::float(
            "movement",
            "percent_low_air",
            StatUnit::Percent,
            self.low_air_pct(),
        ));
        visitor(ExportedStat::float(
            "movement",
            "percent_high_air",
            StatUnit::Percent,
            self.high_air_pct(),
        ));
    }
}

#[cfg(test)]
#[path = "movement_test.rs"]
mod tests;