Skip to main content

GameModsLegacy

Struct GameModsLegacy 

Source
pub struct GameModsLegacy(/* private fields */);
Expand description

Lightweight bitflag type for legacy mods.

§Example

use rosu_mods::GameModsLegacy;

let nomod = GameModsLegacy::default();
assert_eq!(nomod, GameModsLegacy::NoMod);

// Created via bit operations or from a u32
let hdhr_1 = GameModsLegacy::Hidden | GameModsLegacy::HardRock;
let hdhr_2 = GameModsLegacy::from_bits(8 + 16);
assert_eq!(hdhr_1, hdhr_2);

// Various methods for convenience like `contains` and `intersects`.
let ezhdpf = GameModsLegacy::Easy | GameModsLegacy::Hidden | GameModsLegacy::Perfect;
assert!(!ezhdpf.contains(GameModsLegacy::HardRock));
let hdpf = GameModsLegacy::Hidden | GameModsLegacy::Perfect;
assert!(ezhdpf.intersects(hdpf));

// Parsing a `&str`
let hdhrdt = "dthdhr".parse::<GameModsLegacy>().unwrap();
assert_eq!(hdhrdt.bits(), 8 + 16 + 64);

// The Display implementation combines all acronyms
assert_eq!(hdhrdt.to_string(), "HDHRDT".to_string());

// Has an iterator type
let mut iter = GameModsLegacy::from_bits(536871512).iter();
assert_eq!(iter.next(), Some(GameModsLegacy::Hidden));
assert_eq!(iter.next(), Some(GameModsLegacy::HardRock));
assert_eq!(iter.next(), Some(GameModsLegacy::Nightcore));
assert_eq!(iter.next(), Some(GameModsLegacy::ScoreV2));
assert_eq!(iter.next(), None);

Implementations§

Source§

impl GameModsLegacy

Source

pub const NoMod: Self

Source

pub const NoFail: Self

Source

pub const Easy: Self

Source

pub const TouchDevice: Self

Source

pub const Hidden: Self

Source

pub const HardRock: Self

Source

pub const SuddenDeath: Self

Source

pub const DoubleTime: Self

Source

pub const Relax: Self

Source

pub const HalfTime: Self

Source

pub const Nightcore: Self

Source

pub const Flashlight: Self

Source

pub const Autoplay: Self

Source

pub const SpunOut: Self

Source

pub const Autopilot: Self

Source

pub const Perfect: Self

Source

pub const Key4: Self

Source

pub const Key5: Self

Source

pub const Key6: Self

Source

pub const Key7: Self

Source

pub const Key8: Self

Source

pub const FadeIn: Self

Source

pub const Random: Self

Source

pub const Cinema: Self

Source

pub const Target: Self

Source

pub const Key9: Self

Source

pub const KeyCoop: Self

Source

pub const Key1: Self

Source

pub const Key3: Self

Source

pub const Key2: Self

Source

pub const ScoreV2: Self

Source

pub const Mirror: Self

Source§

impl GameModsLegacy

Source

pub const fn clock_rate(self) -> f64

Returns the clock rate for the mods i.e. 1.5 for DT, 0.75 for HT, and 1.0 otherwise.

Source

pub const fn len(self) -> usize

Returns the amount of contained mods.

§Example
use rosu_mods::GameModsLegacy;

assert_eq!(GameModsLegacy::NoMod.len(), 0);
let mods = GameModsLegacy::from_bits(8 + 16 + 64 + 128);
assert_eq!(mods.len(), 4);
Source

pub fn iter(self) -> GameModsLegacyIter

Returns an iterator over GameModsLegacy.

§Example
use rosu_mods::GameModsLegacy;

let mut iter = GameModsLegacy::from_bits(8 + 16 + 64 + 128).iter();
assert_eq!(iter.next(), Some(GameModsLegacy::Hidden));
assert_eq!(iter.next(), Some(GameModsLegacy::HardRock));
assert_eq!(iter.next(), Some(GameModsLegacy::DoubleTime));
assert_eq!(iter.next(), Some(GameModsLegacy::Relax));
assert_eq!(iter.next(), None);

let mut iter = GameModsLegacy::NoMod.iter();
assert_eq!(iter.next(), Some(GameModsLegacy::NoMod));
assert_eq!(iter.next(), None);
Source

pub fn to_intermode(self) -> GameModsIntermode

Source§

impl GameModsLegacy

Source

pub const fn bits(self) -> u32

Get the underlying bits value.

The returned value is exactly the bits set in this flags value.

Source

pub const fn try_from_bits(bits: u32) -> Option<Self>

Convert from a bits value.

This method will return None if any unknown bits are set.

Source

pub const fn from_bits(bits: u32) -> Self

Convert from a bits value, unsetting any unknown bits.

Source

pub const fn from_bits_retain(bits: u32) -> Self

Convert from a bits value exactly.

Unknown bits are retained.

Source

pub const fn is_empty(self) -> bool

Whether all bits in this flags value are unset.

Source

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

Whether any set bits in a source flags value are also set in a target flags value.

Source

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

Whether all set bits in a source flags value are also set in a target flags value.

Source

pub const fn insert(&mut self, other: Self)

The bitwise or (|) of the bits in two flags values.

Source

pub const fn remove(&mut self, other: Self)

The intersection of a source flags value with the complement of a target flags value (&!).

This method is not equivalent to self & !other when other has unknown bits set. remove won’t truncate other, but the ! operator will.

Source

pub const fn intersection(self, other: Self) -> Self

The bitwise and (&) of the bits in two flags values.

Source

pub const fn union(self, other: Self) -> Self

The bitwise or (|) of the bits in two flags values.

Source

pub const fn difference(self, other: Self) -> Self

The intersection of a source flags value with the complement of a target flags value (&!).

This method is not equivalent to self & !other when other has unknown bits set. difference won’t truncate other, but the ! operator will.

Source

pub const fn symmetric_difference(self, other: Self) -> Self

The bitwise exclusive-or (^) of the bits in two flags values.

Trait Implementations§

Source§

impl Archive for GameModsLegacy

Available on crate feature rkyv only.
Source§

type Archived = <u32 as Archive>::Archived

The archived representation of this type. Read more
Source§

type Resolver = ()

The resolver for this type. It must contain all the additional information from serializing needed to make the archived type from the normal type.
Source§

fn resolve(&self, resolver: (), out: Place<Self::Archived>)

Creates the archived version of this value at the given position and writes it to the given output. Read more
Source§

const COPY_OPTIMIZATION: CopyOptimization<Self> = _

An optimization flag that allows the bytes of this type to be copied directly to a writer instead of calling serialize. Read more
Source§

impl Binary for GameModsLegacy

Source§

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

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

impl BitAnd for GameModsLegacy

Source§

fn bitand(self, other: Self) -> Self

The bitwise and (&) of the bits in two flags values.

Source§

type Output = GameModsLegacy

The resulting type after applying the & operator.
Source§

impl BitAndAssign for GameModsLegacy

Source§

fn bitand_assign(&mut self, other: Self)

The bitwise and (&) of the bits in two flags values.

Source§

impl BitOr for GameModsLegacy

Source§

fn bitor(self, other: GameModsLegacy) -> Self

The bitwise or (|) of the bits in two flags values.

Source§

type Output = GameModsLegacy

The resulting type after applying the | operator.
Source§

impl BitOrAssign for GameModsLegacy

Source§

fn bitor_assign(&mut self, other: Self)

The bitwise or (|) of the bits in two flags values.

Source§

impl BitXor for GameModsLegacy

Source§

fn bitxor(self, other: Self) -> Self

The bitwise exclusive-or (^) of the bits in two flags values.

Source§

type Output = GameModsLegacy

The resulting type after applying the ^ operator.
Source§

impl Clone for GameModsLegacy

Source§

fn clone(&self) -> GameModsLegacy

Returns a duplicate 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 Debug for GameModsLegacy

Source§

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

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

impl Default for GameModsLegacy

Source§

fn default() -> GameModsLegacy

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for GameModsLegacy

Available on crate feature serde only.
Source§

fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Self, D::Error>

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<D: Fallible + ?Sized> Deserialize<GameModsLegacy, D> for ArchivedU32

Available on crate feature rkyv only.
Source§

fn deserialize(&self, _: &mut D) -> Result<GameModsLegacy, D::Error>

Deserializes using the given deserializer
Source§

impl Display for GameModsLegacy

Source§

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

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

impl Extend<GameModsLegacy> for GameModsLegacy

Source§

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

The bitwise or (|) of the bits in each flags value.

Source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
Source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
Source§

impl From<GameModsLegacy> for GameModsIntermode

Source§

fn from(mods: GameModsLegacy) -> Self

Converts to this type from the input type.
Source§

impl From<GameModsLegacy> for u32

Source§

fn from(mods: GameModsLegacy) -> Self

Converts to this type from the input type.
Source§

impl FromIterator<GameModsLegacy> for GameModsLegacy

Source§

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

The bitwise or (|) of the bits in each flags value.

Source§

impl FromStr for GameModsLegacy

Source§

type Err = GameModsLegacyParseError

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl Hash for GameModsLegacy

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl IntoIterator for GameModsLegacy

Source§

type Item = GameModsLegacy

The type of the elements being iterated over.
Source§

type IntoIter = GameModsLegacyIter

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl Ord for GameModsLegacy

Source§

fn cmp(&self, other: &GameModsLegacy) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for GameModsLegacy

Source§

fn eq(&self, other: &GameModsLegacy) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for GameModsLegacy

Source§

fn partial_cmp(&self, other: &GameModsLegacy) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

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

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

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

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

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

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<S: Fallible + ?Sized> Serialize<S> for GameModsLegacy

Available on crate feature rkyv only.
Source§

fn serialize(&self, s: &mut S) -> Result<(), S::Error>

Writes the dependencies for the object and returns a resolver that can create the archived type.
Source§

impl Serialize for GameModsLegacy

Available on crate feature serde only.
Source§

fn serialize<S: Serializer>(&self, s: S) -> Result<S::Ok, S::Error>

Serialize this value into the given Serde serializer. Read more
Source§

impl Sub for GameModsLegacy

Source§

fn sub(self, other: Self) -> Self

The intersection of a source flags value with the complement of a target flags value (&!).

This method is not equivalent to self & !other when other has unknown bits set. difference won’t truncate other, but the ! operator will.

Source§

type Output = GameModsLegacy

The resulting type after applying the - operator.
Source§

impl SubAssign for GameModsLegacy

Source§

fn sub_assign(&mut self, other: Self)

The intersection of a source flags value with the complement of a target flags value (&!).

This method is not equivalent to self & !other when other has unknown bits set. difference won’t truncate other, but the ! operator will.

Source§

impl TryFrom<Acronym> for GameModsLegacy

Source§

type Error = GameModsLegacyParseError

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

fn try_from(acronym: Acronym) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl Copy for GameModsLegacy

Source§

impl Eq for GameModsLegacy

Source§

impl StructuralPartialEq for GameModsLegacy

Auto Trait Implementations§

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> ArchivePointee for T

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
Source§

impl<T> ArchiveUnsized for T
where T: Archive,

Source§

type Archived = <T as Archive>::Archived

The archived counterpart of this type. Unlike Archive, it may be unsized. Read more
Source§

fn archived_metadata( &self, ) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata

Creates the archived version of the metadata for this value.
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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. 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> LayoutRaw for T

Source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Returns the layout of the type.
Source§

impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
where T: SharedNiching<N1, N2>, N1: Niching<T>, N2: Niching<T>,

Source§

unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool

Returns whether the given value has been niched. Read more
Source§

fn resolve_niched(out: Place<NichedOption<T, N1>>)

Writes data to out indicating that a T is niched.
Source§

impl<T> Pointee for T

Source§

type Metadata = ()

The metadata type for pointers and references to this type.
Source§

impl<T, S> SerializeUnsized<S> for T
where T: Serialize<S>, S: Fallible + Writer + ?Sized,

Source§

fn serialize_unsized( &self, serializer: &mut S, ) -> Result<usize, <S as Fallible>::Error>

Writes the object and returns the position of the archived type.
Source§

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

Source§

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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

Source§

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>,

Source§

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.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,