subtr-actor 0.5.0

Rocket League replay transformer
Documentation
use crate::*;

use super::*;

impl StatFieldProvider for CeilingShotStats {
    fn visit_stat_fields(&self, visitor: &mut dyn FnMut(ExportedStat)) {
        visitor(ExportedStat::unsigned(
            "ceiling_shot",
            "count",
            StatUnit::Count,
            self.count,
        ));
        visitor(ExportedStat::unsigned(
            "ceiling_shot",
            "high_confidence_count",
            StatUnit::Count,
            self.high_confidence_count,
        ));
        visitor(ExportedStat::unsigned(
            "ceiling_shot",
            "is_last_ceiling_shot",
            StatUnit::Count,
            u32::from(self.is_last_ceiling_shot),
        ));
        if let Some(value) = self.last_ceiling_shot_time {
            visitor(ExportedStat::float(
                "ceiling_shot",
                "last_ceiling_shot_time",
                StatUnit::Seconds,
                value,
            ));
        }
        if let Some(value) = self.last_ceiling_shot_frame {
            visitor(ExportedStat::unsigned(
                "ceiling_shot",
                "last_ceiling_shot_frame",
                StatUnit::Count,
                u32::try_from(value).unwrap_or(u32::MAX),
            ));
        }
        if let Some(value) = self.time_since_last_ceiling_shot {
            visitor(ExportedStat::float(
                "ceiling_shot",
                "time_since_last_ceiling_shot",
                StatUnit::Seconds,
                value,
            ));
        }
        if let Some(value) = self.frames_since_last_ceiling_shot {
            visitor(ExportedStat::unsigned(
                "ceiling_shot",
                "frames_since_last_ceiling_shot",
                StatUnit::Count,
                u32::try_from(value).unwrap_or(u32::MAX),
            ));
        }
        if let Some(value) = self.last_confidence {
            visitor(ExportedStat::float(
                "ceiling_shot",
                "last_confidence",
                StatUnit::Percent,
                value * 100.0,
            ));
        }
        visitor(ExportedStat::float(
            "ceiling_shot",
            "average_confidence",
            StatUnit::Percent,
            self.average_confidence() * 100.0,
        ));
        visitor(ExportedStat::float(
            "ceiling_shot",
            "best_confidence",
            StatUnit::Percent,
            self.best_confidence * 100.0,
        ));
    }
}