slight restructing & commenting

This commit is contained in:
MaxOhn
2021-01-22 15:03:34 +01:00
parent 3b599d649e
commit 89d5f7362c
4 changed files with 145 additions and 132 deletions
+36 -36
View File
@@ -1,42 +1,6 @@
use super::{stars, DifficultyAttributes};
use crate::{Beatmap, Mods, PpResult, StarResult};
pub trait TaikoAttributeProvider {
fn attributes(self) -> Option<f32>;
}
impl TaikoAttributeProvider for f32 {
#[inline]
fn attributes(self) -> Option<f32> {
Some(self)
}
}
impl TaikoAttributeProvider for DifficultyAttributes {
#[inline]
fn attributes(self) -> Option<f32> {
Some(self.stars)
}
}
impl TaikoAttributeProvider for StarResult {
#[inline]
fn attributes(self) -> Option<f32> {
#[allow(irrefutable_let_patterns)]
if let StarResult::Taiko(attributes) = self {
Some(attributes.stars)
} else {
None
}
}
}
impl TaikoAttributeProvider for PpResult {
fn attributes(self) -> Option<f32> {
self.attributes.attributes()
}
}
/// Calculator for pp on osu!taiko maps.
#[derive(Clone, Debug)]
pub struct TaikoPP<'m> {
@@ -214,3 +178,39 @@ const HITWINDOW_MAX: f32 = 20.0;
fn difficulty_range_od(ar: f32) -> f32 {
crate::difficulty_range(ar, HITWINDOW_MAX, HITWINDOW_AVG, HITWINDOW_MIN)
}
pub trait TaikoAttributeProvider {
fn attributes(self) -> Option<f32>;
}
impl TaikoAttributeProvider for f32 {
#[inline]
fn attributes(self) -> Option<f32> {
Some(self)
}
}
impl TaikoAttributeProvider for DifficultyAttributes {
#[inline]
fn attributes(self) -> Option<f32> {
Some(self.stars)
}
}
impl TaikoAttributeProvider for StarResult {
#[inline]
fn attributes(self) -> Option<f32> {
#[allow(irrefutable_let_patterns)]
if let StarResult::Taiko(attributes) = self {
Some(attributes.stars)
} else {
None
}
}
}
impl TaikoAttributeProvider for PpResult {
fn attributes(self) -> Option<f32> {
self.attributes.attributes()
}
}