pub struct CatchPerformance<'map> { /* private fields */ }
Expand description

Performance calculator on osu!catch maps.

Implementations§

source§

impl<'map> CatchPerformance<'map>

source

pub fn new(map_or_attrs: impl IntoModePerformance<'map, Catch>) -> Self

Create a new performance calculator for osu!catch maps.

The argument map_or_attrs must be either

If a map is given, difficulty attributes will need to be calculated internally which is a costly operation. Hence, passing attributes should be prefered.

However, when passing previously calculated attributes, make sure they have been calculated for the same map and Difficulty settings. Otherwise, the final attributes will be incorrect.

source

pub fn try_new(map_or_attrs: impl IntoPerformance<'map>) -> Option<Self>

Try to create a new performance calculator for osu!catch maps.

Returns None if map_or_attrs does not belong to osu!catch e.g. a Converted, DifficultyAttributes, or PerformanceAttributes of a different mode.

See CatchPerformance::new for more information.

source

pub const fn mods(self, mods: u32) -> Self

Specify mods through their bit values.

See https://github.com/ppy/osu-api/wiki#mods

source

pub const fn combo(self, combo: u32) -> Self

Specify the max combo of the play.

source

pub const fn fruits(self, n_fruits: u32) -> Self

Specify the amount of fruits of a play i.e. n300.

source

pub const fn droplets(self, n_droplets: u32) -> Self

Specify the amount of droplets of a play i.e. n100.

source

pub const fn tiny_droplets(self, n_tiny_droplets: u32) -> Self

Specify the amount of tiny droplets of a play i.e. n50.

source

pub const fn tiny_droplet_misses(self, n_tiny_droplet_misses: u32) -> Self

Specify the amount of tiny droplet misses of a play i.e. n_katu.

source

pub const fn misses(self, n_misses: u32) -> Self

Specify the amount of fruit / droplet misses of the play.

source

pub const fn difficulty(self, difficulty: Difficulty) -> Self

Use the specified settings of the given Difficulty.

source

pub const fn passed_objects(self, passed_objects: u32) -> Self

Amount of passed objects for partial plays, e.g. a fail.

If you want to calculate the performance after every few objects, instead of using CatchPerformance multiple times with different passed_objects, you should use CatchGradualPerformance.

source

pub fn clock_rate(self, clock_rate: f64) -> Self

Adjust the clock rate used in the calculation.

If none is specified, it will take the clock rate based on the mods i.e. 1.5 for DT, 0.75 for HT and 1.0 otherwise.

MinimumMaximum
0.01100
source

pub fn ar(self, ar: f32, with_mods: bool) -> Self

Override a beatmap’s set AR.

with_mods determines if the given value should be used before or after accounting for mods, e.g. on true the value will be used as is and on false it will be modified based on the mods.

MinimumMaximum
-2020
source

pub fn cs(self, cs: f32, with_mods: bool) -> Self

Override a beatmap’s set CS.

with_mods determines if the given value should be used before or after accounting for mods, e.g. on true the value will be used as is and on false it will be modified based on the mods.

MinimumMaximum
-2020
source

pub fn hp(self, hp: f32, with_mods: bool) -> Self

Override a beatmap’s set HP.

with_mods determines if the given value should be used before or after accounting for mods, e.g. on true the value will be used as is and on false it will be modified based on the mods.

MinimumMaximum
-2020
source

pub fn od(self, od: f32, with_mods: bool) -> Self

Override a beatmap’s set OD.

with_mods determines if the given value should be used before or after accounting for mods, e.g. on true the value will be used as is and on false it will be modified based on the mods.

MinimumMaximum
-2020
source

pub const fn hardrock_offsets(self, hardrock_offsets: bool) -> Self

Adjust patterns as if the HR mod is enabled.

source

pub const fn state(self, state: CatchScoreState) -> Self

Provide parameters through an CatchScoreState.

source

pub fn accuracy(self, acc: f64) -> Self

Specify the accuracy of a play between 0.0 and 100.0. This will be used to generate matching hitresults.

source

pub fn generate_state(&mut self) -> CatchScoreState

Create the CatchScoreState that will be used for performance calculation.

source

pub fn calculate(self) -> CatchPerformanceAttributes

Calculate all performance related values, including pp and stars.

Trait Implementations§

source§

impl<'map> Clone for CatchPerformance<'map>

source§

fn clone(&self) -> CatchPerformance<'map>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'map> Debug for CatchPerformance<'map>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'map, T: IntoModePerformance<'map, Catch>> From<T> for CatchPerformance<'map>

source§

fn from(into: T) -> Self

Converts to this type from the input type.
source§

impl<'map> PartialEq for CatchPerformance<'map>

source§

fn eq(&self, other: &CatchPerformance<'map>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'map> TryFrom<OsuPerformance<'map>> for CatchPerformance<'map>

source§

fn try_from(osu: OsuPerformance<'map>) -> Result<Self, Self::Error>

Try to create CatchPerformance through OsuPerformance.

Returns None if OsuPerformance does not contain a beatmap, i.e. if it was constructed through attributes or OsuPerformance::generate_state was called.

§

type Error = OsuPerformance<'map>

The type returned in the event of a conversion error.
source§

impl<'map> StructuralPartialEq for CatchPerformance<'map>

Auto Trait Implementations§

§

impl<'map> Freeze for CatchPerformance<'map>

§

impl<'map> RefUnwindSafe for CatchPerformance<'map>

§

impl<'map> Send for CatchPerformance<'map>

§

impl<'map> Sync for CatchPerformance<'map>

§

impl<'map> Unpin for CatchPerformance<'map>

§

impl<'map> UnwindSafe for CatchPerformance<'map>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.