rosu-pp 4.0.1

Difficulty and performance calculation for osu!
Documentation
use crate::catch::difficulty::{evaluators::MovementEvaluator, object::CatchDifficultyObject};

define_skill! {
    pub struct Movement: StrainDecaySkill => [CatchDifficultyObject][CatchDifficultyObject] {
        clock_rate: f64,
    }
}

impl Movement {
    const SKILL_MULTIPLIER: f64 = 1.0;
    const STRAIN_DECAY_BASE: f64 = 0.2;

    const DECAY_WEIGHT: f64 = 0.94;

    const SECTION_LENGTH: f64 = 750.0;

    fn strain_value_of(
        &mut self,
        curr: &CatchDifficultyObject,
        diff_objects: &[CatchDifficultyObject],
    ) -> f64 {
        MovementEvaluator::evaluate_diff_of(curr, diff_objects, self.clock_rate)
    }
}