State

Struct State 

Source
#[repr(transparent)]
pub struct State<Q: ?Sized = bool>(pub Q);
Expand description

State is a generalized state implementation, representing the state of a system or object.

Tuple Fields§

§0: Q

Implementations§

Source§

impl<Q> State<Q>

Source

pub const fn new(state: Q) -> Self

a constructor method for the State type.

Source

pub fn create<F>(f: F) -> Self
where F: FnOnce() -> Q,

initializes a new instance of state using the given initializer function.

Source

pub fn one() -> Self
where Q: One,

returns a new state with a value of one.

Source

pub fn zero() -> Self
where Q: Zero,

returns a new state with a value of zero.

Source

pub const fn as_ptr(&self) -> *const Q

returns a new instance of state with a raw pointer to the inner value.

Source

pub const fn as_mut_ptr(&mut self) -> *mut Q

returns a new instance of state with a mutable raw pointer to the inner value.

Source

pub unsafe fn cast<R>(self) -> State<R>

Casts the state to a new type, returning a new instance of State.

§Saftey

This method is unsafe because it is up to the caller to ensure that the cast is valid.

Source

pub const fn get(&self) -> &Q

returns an immutable reference to the inner value of the state.

Source

pub const fn get_mut(&mut self) -> &mut Q

returns a mutable reference to the inner value of the state.

Source

pub fn value(self) -> Q

consumes and returns the inner value of the state.

Source

pub fn map<R, F>(self, f: F) -> State<R>
where F: FnOnce(Q) -> R,

State::map applies the given function onto the inner value of the state, returning a new state with the result.

Source

pub const fn replace(&mut self, state: Q) -> Q

replace the inner value of the state with the given state,

Source

pub fn reset(&mut self) -> &mut Self
where Q: Default,

Clears the state, setting it to its default value.

Source

pub fn set(&mut self, state: Q) -> &mut Self

Sets the state to a new value.

Source

pub const fn swap(&mut self, other: &mut State<Q>)

swap the inner value of the state with that of the given state.

Source

pub fn take(&mut self) -> Q
where Q: Default,

take the inner value of the state, leaving the logical default in its place

Source

pub fn as_halt(&self) -> State<Halt<&Q>>

returns a halted state with an immutable reference to the state.

Source

pub fn into_halt(self) -> State<Halt<Q>>

Consumes the state and returns a halted state.

Source

pub fn halt(self) -> State<Halt<Q>>

Wraps the inner value with a Halt state, returning a new instance of State.

Source

pub fn is_halt(&self) -> bool
where Q: 'static,

returns true if the state is a Halt state.

Source

pub fn boxed(self) -> State<Box<Q>>

returns a new state with a boxed inner value.

Source

pub fn as_any(&self) -> State<Box<dyn Any>>
where Q: Clone + 'static,

Converts the inner type into a boxed “any” state, returning a new instance of state

Source

pub fn into_any(self) -> State<Box<dyn Any>>
where Q: 'static,

Converts the inner type into a boxed “any” state, returning a new instance of state

Source

pub fn shared(self) -> State<Arc<Q>>

Wraps the inner value of the state with an [Arc] and returns a new instance of State

Source

pub fn to_shared(&self) -> State<Arc<Q>>
where Q: Clone,

returns a shared reference to the state.

Source

pub const fn view(&self) -> State<&Q>

returns a state with an owned inner value.

Source

pub const fn view_mut(&mut self) -> State<&mut Q>

returns a state with a mutable reference to the inner value.

Source

pub fn get_inner_type_name(&self) -> &'static str

returns the name of the generic inner type, Q.

Source

pub fn get_inner_type_id(&self) -> TypeId
where Q: 'static,

returns the type id of the generic inner type, Q.

Source§

impl<Q> State<Q>

Source

pub fn into_inner(self) -> Q

👎Deprecated since 0.0.7: use value instead, as it is more idiomatic and clearer.
Source

pub fn to_ref(&self) -> State<&Q>

👎Deprecated since 0.0.7: use view instead, as it is more idiomatic and clearer.
Source

pub fn to_mut(&mut self) -> State<&mut Q>

👎Deprecated since 0.0.7: use view_mut instead, as it is more idiomatic and clearer.
Source§

impl<Q> State<&Q>
where Q: RawState,

Source

pub fn cloned(&self) -> State<Q>
where Q: Clone,

Clones the internal state and returning a new instance of State

Source

pub fn copied(&self) -> State<Q>
where Q: Copy,

Copies the internal state and returning a new instance of State

Source§

impl<Q> State<&mut Q>
where Q: RawState,

Source

pub fn cloned(&self) -> State<Q>
where Q: Clone,

Clones the internal state and returning a new instance of State

Source

pub fn copied(&self) -> State<Q>
where Q: Copy,

Copies the internal state and returning a new instance of State

Source§

impl<Q> State<*const Q>
where Q: RawState,

Source

pub fn from_ptr(ptr: *const Q) -> Self

Creates a new instance of state with a raw pointer to the inner value.

Source§

impl<Q> State<*mut Q>
where Q: RawState,

Source

pub fn from_mut_ptr(ptr: *mut Q) -> Self

Creates a new instance of state with a mutable raw pointer to the inner value.

Source§

impl<Q> State<MaybeUninit<Q>>
where Q: RawState,

Source

pub fn init(value: Q) -> Self

Creates a new instance of state with an initialized inner value.

Source

pub const fn uninit() -> Self

Creates a new instance of state with an uninitialized inner value.

Source

pub unsafe fn assume_init(self) -> State<Q>

Converts the state into a new instance of State with an initialized state.

§Safety

This method is unsafe because it is up to the caller to ensure that the inner value is indeed initialized.

Source

pub fn is_null(&self) -> bool

determines if the inner state is null; returns false if the inner state is not null.

Source

pub fn write(&mut self, value: Q) -> &mut Q

Writes a value to the inner state.

Source§

impl State<()>

Source

pub const fn empty() -> Self

Creates a new instance of State with an empty state.

Source§

impl State<bool>

Source

pub const fn from_true() -> Self

Creates a new instance of State with an inner state of true.

Source

pub const fn from_false() -> Self

returns a new instance of State with an inner state of false.

Source

pub fn is_true(&self) -> bool

returns true if the inner state is true, false otherwise.

Source

pub fn is_false(&self) -> bool

returns true if the inner state is false, false otherwise.

Source§

impl State<Box<dyn Any>>

Source

pub fn downcast<Q>(self) -> Result<State<Box<Q>>, Error>
where Q: Any,

Attempts to downcast the state to a concrete type Q; returns an error if the state is not of type Q.

Source

pub fn downcast_ref<Q>(&self) -> Option<State<&Q>>
where Q: Any,

Returns an immutable reference to the state if it is of type Q; returns None otherwise.

Source

pub fn downcast_mut<Q>(&mut self) -> Option<State<&mut Q>>
where Q: Any,

Returns a mutable reference to the state if it is of type Q; returns None otherwise.

Source§

impl<Q> State<Option<Q>>
where Q: RawState,

Source

pub const fn none() -> Self

Creates a new instance of state whose inner state is Option::None.

Source

pub const fn some(value: Q) -> Self

Creates a new instance of state whose inner state is Option::Some.

Source§

impl<Q> State<Halt<Q>>
where Q: RawState,

Source

pub fn halted(Halt: Halt<Q>) -> Self

Creates a new instance of State from a Halt state.

Source

pub fn unhalt(self) -> State<Q>
where Q: RawState,

Converts the halted state into an unhalted state.

Trait Implementations§

Source§

impl<'a, A, B, C> Add<&'a State<B>> for &'a State<A>
where &'a A: RawState + Add<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &'a State<B>) -> Self::Output

Performs the + operation. Read more
Source§

impl<'a, A, B, C> Add<&'a State<B>> for State<A>
where A: RawState + Add<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &'a State<B>) -> Self::Output

Performs the + operation. Read more
Source§

impl<'a, A, B, C> Add<State<B>> for &'a State<A>
where &'a A: RawState + Add<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: State<B>) -> Self::Output

Performs the + operation. Read more
Source§

impl<A, B, C> Add<State<B>> for State<A>
where A: RawState + Add<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: State<B>) -> Self::Output

Performs the + operation. Read more
Source§

impl<A, B> AddAssign<B> for State<A>
where A: RawState + AddAssign<B>, B: RawState,

Source§

fn add_assign(&mut self, rhs: B)

Performs the += operation. Read more
Source§

impl<Q> AsMut<Q> for State<Q>

Source§

fn as_mut(&mut self) -> &mut Q

Converts this type into a mutable reference of the (usually inferred) input type.
Source§

impl<Q> AsRef<Q> for State<Q>

Source§

fn as_ref(&self) -> &Q

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<Q> Binary for State<Q>
where Q: Binary,

Source§

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

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

impl<'a, A, B, C> BitAnd<&'a State<B>> for &'a State<A>
where &'a A: RawState + BitAnd<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &'a State<B>) -> Self::Output

Performs the & operation. Read more
Source§

impl<'a, A, B, C> BitAnd<&'a State<B>> for State<A>
where A: RawState + BitAnd<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: &'a State<B>) -> Self::Output

Performs the & operation. Read more
Source§

impl<'a, A, B, C> BitAnd<State<B>> for &'a State<A>
where &'a A: RawState + BitAnd<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: State<B>) -> Self::Output

Performs the & operation. Read more
Source§

impl<A, B, C> BitAnd<State<B>> for State<A>
where A: RawState + BitAnd<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: State<B>) -> Self::Output

Performs the & operation. Read more
Source§

impl<A, B> BitAndAssign<B> for State<A>
where A: RawState + BitAndAssign<B>, B: RawState,

Source§

fn bitand_assign(&mut self, rhs: B)

Performs the &= operation. Read more
Source§

impl<'a, A, B, C> BitOr<&'a State<B>> for &'a State<A>
where &'a A: RawState + BitOr<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &'a State<B>) -> Self::Output

Performs the | operation. Read more
Source§

impl<'a, A, B, C> BitOr<&'a State<B>> for State<A>
where A: RawState + BitOr<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: &'a State<B>) -> Self::Output

Performs the | operation. Read more
Source§

impl<'a, A, B, C> BitOr<State<B>> for &'a State<A>
where &'a A: RawState + BitOr<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: State<B>) -> Self::Output

Performs the | operation. Read more
Source§

impl<A, B, C> BitOr<State<B>> for State<A>
where A: RawState + BitOr<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: State<B>) -> Self::Output

Performs the | operation. Read more
Source§

impl<A, B> BitOrAssign<B> for State<A>
where A: RawState + BitOrAssign<B>, B: RawState,

Source§

fn bitor_assign(&mut self, rhs: B)

Performs the |= operation. Read more
Source§

impl<'a, A, B, C> BitXor<&'a State<B>> for &'a State<A>
where &'a A: RawState + BitXor<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &'a State<B>) -> Self::Output

Performs the ^ operation. Read more
Source§

impl<'a, A, B, C> BitXor<&'a State<B>> for State<A>
where A: RawState + BitXor<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: &'a State<B>) -> Self::Output

Performs the ^ operation. Read more
Source§

impl<'a, A, B, C> BitXor<State<B>> for &'a State<A>
where &'a A: RawState + BitXor<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: State<B>) -> Self::Output

Performs the ^ operation. Read more
Source§

impl<A, B, C> BitXor<State<B>> for State<A>
where A: RawState + BitXor<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: State<B>) -> Self::Output

Performs the ^ operation. Read more
Source§

impl<A, B> BitXorAssign<B> for State<A>
where A: RawState + BitXorAssign<B>, B: RawState,

Source§

fn bitxor_assign(&mut self, rhs: B)

Performs the ^= operation. Read more
Source§

impl<Q> Borrow<Q> for State<Q>

Source§

fn borrow(&self) -> &Q

Immutably borrows from an owned value. Read more
Source§

impl<Q> BorrowMut<Q> for State<Q>

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<Q: Clone + ?Sized> Clone for State<Q>

Source§

fn clone(&self) -> State<Q>

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<Q> Debug for State<Q>
where Q: Debug,

Source§

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

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

impl<Q: Default + ?Sized> Default for State<Q>

Source§

fn default() -> State<Q>

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

impl<Q> Deref for State<Q>

Source§

type Target = Q

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<Q> DerefMut for State<Q>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl<'de, Q> Deserialize<'de> for State<Q>
where Q: Deserialize<'de> + ?Sized,

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

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

impl<Q> Display for State<Q>
where Q: Display,

Source§

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

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

impl<'a, A, B, C> Div<&'a State<B>> for &'a State<A>
where &'a A: RawState + Div<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the / operator.
Source§

fn div(self, rhs: &'a State<B>) -> Self::Output

Performs the / operation. Read more
Source§

impl<'a, A, B, C> Div<&'a State<B>> for State<A>
where A: RawState + Div<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the / operator.
Source§

fn div(self, rhs: &'a State<B>) -> Self::Output

Performs the / operation. Read more
Source§

impl<'a, A, B, C> Div<State<B>> for &'a State<A>
where &'a A: RawState + Div<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the / operator.
Source§

fn div(self, rhs: State<B>) -> Self::Output

Performs the / operation. Read more
Source§

impl<A, B, C> Div<State<B>> for State<A>
where A: RawState + Div<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the / operator.
Source§

fn div(self, rhs: State<B>) -> Self::Output

Performs the / operation. Read more
Source§

impl<A, B> DivAssign<B> for State<A>
where A: RawState + DivAssign<B>, B: RawState,

Source§

fn div_assign(&mut self, rhs: B)

Performs the /= operation. Read more
Source§

impl<Q> From<Halt<Q>> for State<Q>

Source§

fn from(Halt: Halt<Q>) -> Self

Converts to this type from the input type.
Source§

impl<Q> From<Q> for State<Q>

Source§

fn from(state: Q) -> Self

Converts to this type from the input type.
Source§

impl<Q> From<State<Q>> for Halt<Q>

Source§

fn from(State: State<Q>) -> Self

Converts to this type from the input type.
Source§

impl<Q> From<State<Q>> for HaltState<Q>

Source§

fn from(state: State<Q>) -> Self

Converts to this type from the input type.
Source§

impl<Q> Haltable<Q> for State<Halt<Q>>

Source§

impl<Q> Haltable<Q> for State<Option<Q>>

Source§

impl<Q: Hash + ?Sized> Hash for State<Q>

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<Q> LowerExp for State<Q>
where Q: LowerExp,

Source§

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

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

impl<Q> LowerHex for State<Q>
where Q: LowerHex,

Source§

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

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

impl<'a, A, B, C> Mul<&'a State<B>> for &'a State<A>
where &'a A: RawState + Mul<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &'a State<B>) -> Self::Output

Performs the * operation. Read more
Source§

impl<'a, A, B, C> Mul<&'a State<B>> for State<A>
where A: RawState + Mul<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &'a State<B>) -> Self::Output

Performs the * operation. Read more
Source§

impl<'a, A, B, C> Mul<State<B>> for &'a State<A>
where &'a A: RawState + Mul<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: State<B>) -> Self::Output

Performs the * operation. Read more
Source§

impl<A, B, C> Mul<State<B>> for State<A>
where A: RawState + Mul<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: State<B>) -> Self::Output

Performs the * operation. Read more
Source§

impl<A, B> MulAssign<B> for State<A>
where A: RawState + MulAssign<B>, B: RawState,

Source§

fn mul_assign(&mut self, rhs: B)

Performs the *= operation. Read more
Source§

impl<'a, Q> Neg for &'a State<Q>
where &'a Q: RawState + Neg,

Source§

type Output = State<<&'a Q as Neg>::Output>

The resulting type after applying the - operator.
Source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
Source§

impl<'a, Q> Neg for &'a mut State<Q>
where &'a Q: RawState + Neg,

Source§

type Output = State<<&'a Q as Neg>::Output>

The resulting type after applying the - operator.
Source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
Source§

impl<Q> Neg for State<Q>
where Q: RawState + Neg,

Source§

type Output = State<<Q as Neg>::Output>

The resulting type after applying the - operator.
Source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
Source§

impl<'a, Q> Not for &'a State<Q>
where &'a Q: RawState + Not,

Source§

type Output = State<<&'a Q as Not>::Output>

The resulting type after applying the ! operator.
Source§

fn not(self) -> Self::Output

Performs the unary ! operation. Read more
Source§

impl<'a, Q> Not for &'a mut State<Q>
where &'a Q: RawState + Not,

Source§

type Output = State<<&'a Q as Not>::Output>

The resulting type after applying the ! operator.
Source§

fn not(self) -> Self::Output

Performs the unary ! operation. Read more
Source§

impl<Q> Not for State<Q>
where Q: RawState + Not,

Source§

type Output = State<<Q as Not>::Output>

The resulting type after applying the ! operator.
Source§

fn not(self) -> Self::Output

Performs the unary ! operation. Read more
Source§

impl<Q> Num for State<Q>
where Q: RawState + Num,

Source§

type FromStrRadixErr = <Q as Num>::FromStrRadixErr

Source§

fn from_str_radix(str: &str, radix: u32) -> Result<Self, Self::FromStrRadixErr>

Convert from a string and radix (typically 2..=36). Read more
Source§

impl<Q> Octal for State<Q>
where Q: Octal,

Source§

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

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

impl<Q> One for State<Q>
where Q: RawState + PartialEq + One,

Source§

fn one() -> Self

Returns the multiplicative identity element of Self, 1. Read more
Source§

fn is_one(&self) -> bool

Returns true if self is equal to the multiplicative identity. Read more
Source§

fn set_one(&mut self)

Sets self to the multiplicative identity element of Self, 1.
Source§

impl<Q: Ord + ?Sized> Ord for State<Q>

Source§

fn cmp(&self, other: &State<Q>) -> 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<'a, Q> PartialEq<&'a Q> for State<Q>
where Q: PartialEq,

Source§

fn eq(&self, other: &&'a Q) -> 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<'a, Q> PartialEq<&'a mut Q> for State<Q>
where Q: PartialEq,

Source§

fn eq(&self, other: &&'a mut Q) -> 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<Q, S> PartialEq<Head<Q, S>> for State<&Q>
where Q: RawState + PartialEq,

Source§

fn eq(&self, head: &Head<Q, S>) -> 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<Q, S> PartialEq<Head<Q, S>> for State<Q>
where Q: RawState + PartialEq,

Source§

fn eq(&self, head: &Head<Q, S>) -> 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<Q> PartialEq<Q> for State<Q>
where Q: PartialEq,

Source§

fn eq(&self, other: &Q) -> 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<'a, Q, S> PartialEq<State<&'a Q>> for Head<Q, S>
where Q: RawState + PartialEq,

Source§

fn eq(&self, state: &State<&'a Q>) -> 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<Q, S> PartialEq<State<Q>> for Head<Q, S>
where Q: RawState + PartialEq,

Source§

fn eq(&self, state: &State<Q>) -> 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<Q: PartialEq + ?Sized> PartialEq for State<Q>

Source§

fn eq(&self, other: &State<Q>) -> 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<'a, Q> PartialOrd<&'a Q> for State<Q>
where Q: PartialOrd,

Source§

fn partial_cmp(&self, other: &&'a Q) -> 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<'a, Q> PartialOrd<&'a mut Q> for State<Q>
where Q: PartialOrd,

Source§

fn partial_cmp(&self, other: &&'a mut Q) -> 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<Q> PartialOrd<Q> for State<Q>
where Q: PartialOrd,

Source§

fn partial_cmp(&self, other: &Q) -> 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<Q: PartialOrd + ?Sized> PartialOrd for State<Q>

Source§

fn partial_cmp(&self, other: &State<Q>) -> 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<'a, A, B, C> Rem<&'a State<B>> for &'a State<A>
where &'a A: RawState + Rem<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: &'a State<B>) -> Self::Output

Performs the % operation. Read more
Source§

impl<'a, A, B, C> Rem<&'a State<B>> for State<A>
where A: RawState + Rem<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: &'a State<B>) -> Self::Output

Performs the % operation. Read more
Source§

impl<'a, A, B, C> Rem<State<B>> for &'a State<A>
where &'a A: RawState + Rem<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: State<B>) -> Self::Output

Performs the % operation. Read more
Source§

impl<A, B, C> Rem<State<B>> for State<A>
where A: RawState + Rem<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: State<B>) -> Self::Output

Performs the % operation. Read more
Source§

impl<A, B> RemAssign<B> for State<A>
where A: RawState + RemAssign<B>, B: RawState,

Source§

fn rem_assign(&mut self, rhs: B)

Performs the %= operation. Read more
Source§

impl<Q> Serialize for State<Q>
where Q: Serialize + ?Sized,

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

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

impl<'a, A, B, C> Shl<&'a State<B>> for &'a State<A>
where &'a A: RawState + Shl<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: &'a State<B>) -> Self::Output

Performs the << operation. Read more
Source§

impl<'a, A, B, C> Shl<&'a State<B>> for State<A>
where A: RawState + Shl<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: &'a State<B>) -> Self::Output

Performs the << operation. Read more
Source§

impl<'a, A, B, C> Shl<State<B>> for &'a State<A>
where &'a A: RawState + Shl<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: State<B>) -> Self::Output

Performs the << operation. Read more
Source§

impl<A, B, C> Shl<State<B>> for State<A>
where A: RawState + Shl<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: State<B>) -> Self::Output

Performs the << operation. Read more
Source§

impl<A, B> ShlAssign<B> for State<A>
where A: RawState + ShlAssign<B>, B: RawState,

Source§

fn shl_assign(&mut self, rhs: B)

Performs the <<= operation. Read more
Source§

impl<'a, A, B, C> Shr<&'a State<B>> for &'a State<A>
where &'a A: RawState + Shr<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: &'a State<B>) -> Self::Output

Performs the >> operation. Read more
Source§

impl<'a, A, B, C> Shr<&'a State<B>> for State<A>
where A: RawState + Shr<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: &'a State<B>) -> Self::Output

Performs the >> operation. Read more
Source§

impl<'a, A, B, C> Shr<State<B>> for &'a State<A>
where &'a A: RawState + Shr<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: State<B>) -> Self::Output

Performs the >> operation. Read more
Source§

impl<A, B, C> Shr<State<B>> for State<A>
where A: RawState + Shr<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: State<B>) -> Self::Output

Performs the >> operation. Read more
Source§

impl<A, B> ShrAssign<B> for State<A>
where A: RawState + ShrAssign<B>, B: RawState,

Source§

fn shr_assign(&mut self, rhs: B)

Performs the >>= operation. Read more
Source§

impl<Q> Stated for State<Q>

Source§

type Item = Q

Source§

fn get(self) -> Q

Source§

fn get_ref(&self) -> &Q

Source§

fn get_mut(&mut self) -> &mut Q

Source§

fn set(&mut self, inner: Q)

Source§

impl<'a, A, B, C> Sub<&'a State<B>> for &'a State<A>
where &'a A: RawState + Sub<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &'a State<B>) -> Self::Output

Performs the - operation. Read more
Source§

impl<'a, A, B, C> Sub<&'a State<B>> for State<A>
where A: RawState + Sub<&'a B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &'a State<B>) -> Self::Output

Performs the - operation. Read more
Source§

impl<'a, A, B, C> Sub<State<B>> for &'a State<A>
where &'a A: RawState + Sub<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: State<B>) -> Self::Output

Performs the - operation. Read more
Source§

impl<A, B, C> Sub<State<B>> for State<A>
where A: RawState + Sub<B, Output = C>, B: RawState, C: RawState,

Source§

type Output = State<C>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: State<B>) -> Self::Output

Performs the - operation. Read more
Source§

impl<A, B> SubAssign<B> for State<A>
where A: RawState + SubAssign<B>, B: RawState,

Source§

fn sub_assign(&mut self, rhs: B)

Performs the -= operation. Read more
Source§

impl<Q> UpperExp for State<Q>
where Q: UpperExp,

Source§

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

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

impl<Q> UpperHex for State<Q>
where Q: UpperHex,

Source§

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

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

impl<Q> Zero for State<Q>
where Q: RawState + Zero,

Source§

fn zero() -> Self

Returns the additive identity element of Self, 0. Read more
Source§

fn is_zero(&self) -> bool

Returns true if self is equal to the additive identity.
Source§

fn set_zero(&mut self)

Sets self to the additive identity element of Self, 0.
Source§

impl<Q: Copy + ?Sized> Copy for State<Q>

Source§

impl<Q: Eq + ?Sized> Eq for State<Q>

Source§

impl<Q> Send for State<Q>
where Q: Send,

Source§

impl<Q: ?Sized> StructuralPartialEq for State<Q>

Source§

impl<Q> Sync for State<Q>
where Q: Sync,

Auto Trait Implementations§

§

impl<Q> Freeze for State<Q>
where Q: Freeze + ?Sized,

§

impl<Q> RefUnwindSafe for State<Q>
where Q: RefUnwindSafe + ?Sized,

§

impl<Q> Unpin for State<Q>
where Q: Unpin + ?Sized,

§

impl<Q> UnwindSafe for State<Q>
where Q: UnwindSafe + ?Sized,

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> AsWeight<T> for T
where T: Clone + IntoWeight<T>,

Source§

fn as_weight(&self) -> Weight<T>

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<T> Decrement for T
where T: One + Sub<Output = T>,

Source§

fn decrement(self) -> T

Source§

impl<T> ErrorKind for T
where T: Send + Sync + Debug + Display,

Source§

fn __private__(&self) -> Seal

Source§

impl<T> From<!> for T

Source§

fn from(t: !) -> T

Converts to this type from the input type.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<K, S> Identity<K> for S
where S: Borrow<K>, K: Identifier,

Source§

type Item = S

Source§

fn get(&self) -> &<S as Identity<K>>::Item

Source§

impl<T> Increment for T
where T: One + Add<Output = T>,

Source§

fn increment(self) -> T

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

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoWeight<T> for T

Source§

impl<A, B, C> PercentDifference<B> for A
where A: Clone, B: Sub<A, Output = C>, C: Div<A, Output = C>,

Source§

type Output = C

Source§

fn percent_diff(self, rhs: B) -> <A as PercentDifference<B>>::Output

Computes the percent difference between two values.
Source§

impl<A, B, C> PyMod<B> for A
where A: Rem<B, Output = C>, B: Copy + PartialOrd + Zero, C: PartialOrd + Zero<Output = C> + Add<B>,

Source§

type Output = C

Source§

fn pymod(self, rhs: B) -> <A as PyMod<B>>::Output

Source§

impl<Q> RawState for Q
where Q: Send + Sync + Debug,

Source§

fn __private__(&self) -> Seal

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<R> Rng for R
where R: RngCore + ?Sized,

Source§

fn random<T>(&mut self) -> T

Return a random value via the StandardUniform distribution. Read more
Source§

fn random_iter<T>(self) -> Iter<StandardUniform, Self, T>

Return an iterator over random variates Read more
Source§

fn random_range<T, R>(&mut self, range: R) -> T
where T: SampleUniform, R: SampleRange<T>,

Generate a random value in the given range. Read more
Source§

fn random_bool(&mut self, p: f64) -> bool

Return a bool with a probability p of being true. Read more
Source§

fn random_ratio(&mut self, numerator: u32, denominator: u32) -> bool

Return a bool with a probability of numerator/denominator of being true. Read more
Source§

fn sample<T, D>(&mut self, distr: D) -> T
where D: Distribution<T>,

Sample a new value, using the given distribution. Read more
Source§

fn sample_iter<T, D>(self, distr: D) -> Iter<D, Self, T>
where D: Distribution<T>, Self: Sized,

Create an iterator that generates values using the given distribution. Read more
Source§

fn fill<T>(&mut self, dest: &mut T)
where T: Fill + ?Sized,

Fill any type implementing Fill with random data Read more
Source§

fn gen<T>(&mut self) -> T

👎Deprecated since 0.9.0: Renamed to random to avoid conflict with the new gen keyword in Rust 2024.
Alias for Rng::random.
Source§

fn gen_range<T, R>(&mut self, range: R) -> T
where T: SampleUniform, R: SampleRange<T>,

👎Deprecated since 0.9.0: Renamed to random_range
Source§

fn gen_bool(&mut self, p: f64) -> bool

👎Deprecated since 0.9.0: Renamed to random_bool
Alias for Rng::random_bool.
Source§

fn gen_ratio(&mut self, numerator: u32, denominator: u32) -> bool

👎Deprecated since 0.9.0: Renamed to random_ratio
Source§

impl<T> RngCore for T
where T: DerefMut, <T as Deref>::Target: RngCore,

Source§

fn next_u32(&mut self) -> u32

Return the next random u32. Read more
Source§

fn next_u64(&mut self) -> u64

Return the next random u64. Read more
Source§

fn fill_bytes(&mut self, dst: &mut [u8])

Fill dest with random data. Read more
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<R> TryRngCore for R
where R: RngCore + ?Sized,

Source§

type Error = Infallible

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

fn try_next_u32(&mut self) -> Result<u32, <R as TryRngCore>::Error>

Return the next random u32.
Source§

fn try_next_u64(&mut self) -> Result<u64, <R as TryRngCore>::Error>

Return the next random u64.
Source§

fn try_fill_bytes( &mut self, dst: &mut [u8], ) -> Result<(), <R as TryRngCore>::Error>

Fill dest entirely with random data.
Source§

fn unwrap_err(self) -> UnwrapErr<Self>
where Self: Sized,

Wrap RNG with the UnwrapErr wrapper.
Source§

fn unwrap_mut(&mut self) -> UnwrapMut<'_, Self>

Wrap RNG with the UnwrapMut wrapper.
Source§

fn read_adapter(&mut self) -> RngReadAdapter<'_, Self>
where Self: Sized,

Convert an RngCore to a RngReadAdapter.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> CryptoRng for T
where T: DerefMut, <T as Deref>::Target: CryptoRng,

Source§

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

Source§

impl<T, Rhs> NumAssignOps<Rhs> for T
where T: AddAssign<Rhs> + SubAssign<Rhs> + MulAssign<Rhs> + DivAssign<Rhs> + RemAssign<Rhs>,

Source§

impl<T, Rhs, Output> NumOps<Rhs, Output> for T
where T: Sub<Rhs, Output = Output> + Mul<Rhs, Output = Output> + Div<Rhs, Output = Output> + Add<Rhs, Output = Output> + Rem<Rhs, Output = Output>,

Source§

impl<T> NumRef for T
where T: Num + for<'r> NumOps<&'r T>,

Source§

impl<T, Base> RefNum<Base> for T
where T: NumOps<Base, Base> + for<'r> NumOps<&'r Base, Base>,

Source§

impl<T> Symbolic for T
where T: Clone + Default + Eq + PartialOrd + Send + Sync + Debug + Display + Hash,

Source§

impl<R> TryCryptoRng for R
where R: CryptoRng + ?Sized,