State

Struct State 

Source
#[repr(transparent)]
pub struct State<Q = bool>(pub Q) where Q: ?Sized;
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>
where Q: RawState,

Source

pub const fn new(state: Q) -> State<Q>

a constructor method for the State type.

Source

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

generate a new state by invoking the given function and capturing its output.

Source

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

returns a new state with a value of one.

Source

pub fn zero() -> State<Q>
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 State<Q>
where Q: Default,

Clears the state, setting it to its default value.

Source

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

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

converts the current reference into a haltable state initialized with the current state

Source

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

consumes the wrapper to create another, haltable state that is initialized with the current state

Source

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

consumes the current state, returning a new one with a Halt variant initialized with the current value.

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>
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) -> State<*const Q>

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) -> State<*mut Q>

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) -> State<MaybeUninit<Q>>

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

Source

pub const fn uninit() -> State<MaybeUninit<Q>>

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() -> State<()>

Creates a new instance of State with an empty state.

Source§

impl State

Source

pub const fn from_true() -> State

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

Source

pub const fn from_false() -> State

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>>, StateError>
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() -> State<Option<Q>>

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

Source

pub const fn some(value: Q) -> State<Option<Q>>

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

Trait Implementations§

Source§

impl<'a, _A, _B, _C> Add<&'a State<_B>> for &'a State<_A>
where &'a _A: Add<&'a _B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the + operator.
Source§

fn add( self, rhs: &'a State<_B>, ) -> <&'a State<_A> as Add<&'a State<_B>>>::Output

Performs the + operation. Read more
Source§

impl<'a, _A, _B, _C> Add<&'a State<_B>> for State<_A>
where _A: Add<&'a _B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &'a State<_B>) -> <State<_A> as Add<&'a State<_B>>>::Output

Performs the + operation. Read more
Source§

impl<'a, _A, _B, _C> Add<State<_B>> for &'a State<_A>
where &'a _A: Add<_B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: State<_B>) -> <&'a State<_A> as Add<State<_B>>>::Output

Performs the + operation. Read more
Source§

impl<_A, _B, _C> Add<State<_B>> for State<_A>
where _A: Add<_B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: State<_B>) -> <State<_A> as Add<State<_B>>>::Output

Performs the + operation. Read more
Source§

impl<_A, _B> AddAssign<State<_B>> for State<_A>
where _A: AddAssign<_B>,

Source§

fn add_assign(&mut self, rhs: State<_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<(), Error>

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: BitAnd<&'a _B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the & operator.
Source§

fn bitand( self, rhs: &'a State<_B>, ) -> <&'a State<_A> as BitAnd<&'a State<_B>>>::Output

Performs the & operation. Read more
Source§

impl<'a, _A, _B, _C> BitAnd<&'a State<_B>> for State<_A>
where _A: BitAnd<&'a _B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the & operator.
Source§

fn bitand( self, rhs: &'a State<_B>, ) -> <State<_A> as BitAnd<&'a State<_B>>>::Output

Performs the & operation. Read more
Source§

impl<'a, _A, _B, _C> BitAnd<State<_B>> for &'a State<_A>
where &'a _A: BitAnd<_B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: State<_B>) -> <&'a State<_A> as BitAnd<State<_B>>>::Output

Performs the & operation. Read more
Source§

impl<_A, _B, _C> BitAnd<State<_B>> for State<_A>
where _A: BitAnd<_B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: State<_B>) -> <State<_A> as BitAnd<State<_B>>>::Output

Performs the & operation. Read more
Source§

impl<_A, _B> BitAndAssign<State<_B>> for State<_A>
where _A: BitAndAssign<_B>,

Source§

fn bitand_assign(&mut self, rhs: State<_B>)

Performs the &= operation. Read more
Source§

impl<'a, _A, _B, _C> BitOr<&'a State<_B>> for &'a State<_A>
where &'a _A: BitOr<&'a _B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the | operator.
Source§

fn bitor( self, rhs: &'a State<_B>, ) -> <&'a State<_A> as BitOr<&'a State<_B>>>::Output

Performs the | operation. Read more
Source§

impl<'a, _A, _B, _C> BitOr<&'a State<_B>> for State<_A>
where _A: BitOr<&'a _B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the | operator.
Source§

fn bitor( self, rhs: &'a State<_B>, ) -> <State<_A> as BitOr<&'a State<_B>>>::Output

Performs the | operation. Read more
Source§

impl<'a, _A, _B, _C> BitOr<State<_B>> for &'a State<_A>
where &'a _A: BitOr<_B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: State<_B>) -> <&'a State<_A> as BitOr<State<_B>>>::Output

Performs the | operation. Read more
Source§

impl<_A, _B, _C> BitOr<State<_B>> for State<_A>
where _A: BitOr<_B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: State<_B>) -> <State<_A> as BitOr<State<_B>>>::Output

Performs the | operation. Read more
Source§

impl<_A, _B> BitOrAssign<State<_B>> for State<_A>
where _A: BitOrAssign<_B>,

Source§

fn bitor_assign(&mut self, rhs: State<_B>)

Performs the |= operation. Read more
Source§

impl<'a, _A, _B, _C> BitXor<&'a State<_B>> for &'a State<_A>
where &'a _A: BitXor<&'a _B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the ^ operator.
Source§

fn bitxor( self, rhs: &'a State<_B>, ) -> <&'a State<_A> as BitXor<&'a State<_B>>>::Output

Performs the ^ operation. Read more
Source§

impl<'a, _A, _B, _C> BitXor<&'a State<_B>> for State<_A>
where _A: BitXor<&'a _B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the ^ operator.
Source§

fn bitxor( self, rhs: &'a State<_B>, ) -> <State<_A> as BitXor<&'a State<_B>>>::Output

Performs the ^ operation. Read more
Source§

impl<'a, _A, _B, _C> BitXor<State<_B>> for &'a State<_A>
where &'a _A: BitXor<_B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: State<_B>) -> <&'a State<_A> as BitXor<State<_B>>>::Output

Performs the ^ operation. Read more
Source§

impl<_A, _B, _C> BitXor<State<_B>> for State<_A>
where _A: BitXor<_B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: State<_B>) -> <State<_A> as BitXor<State<_B>>>::Output

Performs the ^ operation. Read more
Source§

impl<_A, _B> BitXorAssign<State<_B>> for State<_A>
where _A: BitXorAssign<_B>,

Source§

fn bitxor_assign(&mut self, rhs: State<_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 for State<Q>
where Q: Clone + ?Sized,

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<(), Error>

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

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

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) -> &<State<Q> as Deref>::Target

Dereferences the value.
Source§

impl<Q> DerefMut for State<Q>

Source§

fn deref_mut(&mut self) -> &mut <State<Q> as Deref>::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<State<Q>, <__D as Deserializer<'de>>::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<(), Error>

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: Div<&'a _B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the / operator.
Source§

fn div( self, rhs: &'a State<_B>, ) -> <&'a State<_A> as Div<&'a State<_B>>>::Output

Performs the / operation. Read more
Source§

impl<'a, _A, _B, _C> Div<&'a State<_B>> for State<_A>
where _A: Div<&'a _B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the / operator.
Source§

fn div(self, rhs: &'a State<_B>) -> <State<_A> as Div<&'a State<_B>>>::Output

Performs the / operation. Read more
Source§

impl<'a, _A, _B, _C> Div<State<_B>> for &'a State<_A>
where &'a _A: Div<_B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the / operator.
Source§

fn div(self, rhs: State<_B>) -> <&'a State<_A> as Div<State<_B>>>::Output

Performs the / operation. Read more
Source§

impl<_A, _B, _C> Div<State<_B>> for State<_A>
where _A: Div<_B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the / operator.
Source§

fn div(self, rhs: State<_B>) -> <State<_A> as Div<State<_B>>>::Output

Performs the / operation. Read more
Source§

impl<_A, _B> DivAssign<State<_B>> for State<_A>
where _A: DivAssign<_B>,

Source§

fn div_assign(&mut self, rhs: State<_B>)

Performs the /= operation. Read more
Source§

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

Source§

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

Converts to this type from the input type.
Source§

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

Source§

fn from(_: State<Q>) -> Halt<Q>

Converts to this type from the input type.
Source§

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

Source§

fn is_halted(&self) -> bool

Source§

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

Source§

fn is_halted(&self) -> bool

Source§

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

Source§

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

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<(), Error>

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<(), Error>

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: Mul<&'a _B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the * operator.
Source§

fn mul( self, rhs: &'a State<_B>, ) -> <&'a State<_A> as Mul<&'a State<_B>>>::Output

Performs the * operation. Read more
Source§

impl<'a, _A, _B, _C> Mul<&'a State<_B>> for State<_A>
where _A: Mul<&'a _B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &'a State<_B>) -> <State<_A> as Mul<&'a State<_B>>>::Output

Performs the * operation. Read more
Source§

impl<'a, _A, _B, _C> Mul<State<_B>> for &'a State<_A>
where &'a _A: Mul<_B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: State<_B>) -> <&'a State<_A> as Mul<State<_B>>>::Output

Performs the * operation. Read more
Source§

impl<_A, _B, _C> Mul<State<_B>> for State<_A>
where _A: Mul<_B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: State<_B>) -> <State<_A> as Mul<State<_B>>>::Output

Performs the * operation. Read more
Source§

impl<_A, _B> MulAssign<State<_B>> for State<_A>
where _A: MulAssign<_B>,

Source§

fn mul_assign(&mut self, rhs: State<_B>)

Performs the *= operation. Read more
Source§

impl<'a, _A, _B> Neg for &'a State<_A>
where &'a _A: Neg<Output = _B>,

Source§

type Output = State<_B>

The resulting type after applying the - operator.
Source§

fn neg(self) -> <&'a State<_A> as Neg>::Output

Performs the unary - operation. Read more
Source§

impl<'a, _A, _B> Neg for &'a mut State<_A>
where &'a mut _A: Neg<Output = _B>,

Source§

type Output = State<_B>

The resulting type after applying the - operator.
Source§

fn neg(self) -> <&'a mut State<_A> as Neg>::Output

Performs the unary - operation. Read more
Source§

impl<_A, _B> Neg for State<_A>
where _A: Neg<Output = _B>,

Source§

type Output = State<_B>

The resulting type after applying the - operator.
Source§

fn neg(self) -> <State<_A> as Neg>::Output

Performs the unary - operation. Read more
Source§

impl<'a, _A, _B> Not for &'a State<_A>
where &'a _A: Not<Output = _B>,

Source§

type Output = State<_B>

The resulting type after applying the ! operator.
Source§

fn not(self) -> <&'a State<_A> as Not>::Output

Performs the unary ! operation. Read more
Source§

impl<'a, _A, _B> Not for &'a mut State<_A>
where &'a mut _A: Not<Output = _B>,

Source§

type Output = State<_B>

The resulting type after applying the ! operator.
Source§

fn not(self) -> <&'a mut State<_A> as Not>::Output

Performs the unary ! operation. Read more
Source§

impl<_A, _B> Not for State<_A>
where _A: Not<Output = _B>,

Source§

type Output = State<_B>

The resulting type after applying the ! operator.
Source§

fn not(self) -> <State<_A> as Not>::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<State<Q>, <State<Q> as Num>::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<(), Error>

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

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

Source§

fn one() -> State<Q>

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 for State<Q>
where Q: Ord + ?Sized,

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> 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<Q> PartialEq for State<Q>
where Q: PartialEq + ?Sized,

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 for State<Q>
where Q: PartialOrd + ?Sized,

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: Rem<&'a _B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the % operator.
Source§

fn rem( self, rhs: &'a State<_B>, ) -> <&'a State<_A> as Rem<&'a State<_B>>>::Output

Performs the % operation. Read more
Source§

impl<'a, _A, _B, _C> Rem<&'a State<_B>> for State<_A>
where _A: Rem<&'a _B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: &'a State<_B>) -> <State<_A> as Rem<&'a State<_B>>>::Output

Performs the % operation. Read more
Source§

impl<'a, _A, _B, _C> Rem<State<_B>> for &'a State<_A>
where &'a _A: Rem<_B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: State<_B>) -> <&'a State<_A> as Rem<State<_B>>>::Output

Performs the % operation. Read more
Source§

impl<_A, _B, _C> Rem<State<_B>> for State<_A>
where _A: Rem<_B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: State<_B>) -> <State<_A> as Rem<State<_B>>>::Output

Performs the % operation. Read more
Source§

impl<_A, _B> RemAssign<State<_B>> for State<_A>
where _A: RemAssign<_B>,

Source§

fn rem_assign(&mut self, rhs: State<_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 as Serializer>::Ok, <__S as Serializer>::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: Shl<&'a _B, Output = _C>,

Source§

type Output = State<_C>

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

fn shl( self, rhs: &'a State<_B>, ) -> <&'a State<_A> as Shl<&'a State<_B>>>::Output

Performs the << operation. Read more
Source§

impl<'a, _A, _B, _C> Shl<&'a State<_B>> for State<_A>
where _A: Shl<&'a _B, Output = _C>,

Source§

type Output = State<_C>

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

fn shl(self, rhs: &'a State<_B>) -> <State<_A> as Shl<&'a State<_B>>>::Output

Performs the << operation. Read more
Source§

impl<'a, _A, _B, _C> Shl<State<_B>> for &'a State<_A>
where &'a _A: Shl<_B, Output = _C>,

Source§

type Output = State<_C>

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

fn shl(self, rhs: State<_B>) -> <&'a State<_A> as Shl<State<_B>>>::Output

Performs the << operation. Read more
Source§

impl<_A, _B, _C> Shl<State<_B>> for State<_A>
where _A: Shl<_B, Output = _C>,

Source§

type Output = State<_C>

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

fn shl(self, rhs: State<_B>) -> <State<_A> as Shl<State<_B>>>::Output

Performs the << operation. Read more
Source§

impl<_A, _B> ShlAssign<State<_B>> for State<_A>
where _A: ShlAssign<_B>,

Source§

fn shl_assign(&mut self, rhs: State<_B>)

Performs the <<= operation. Read more
Source§

impl<'a, _A, _B, _C> Shr<&'a State<_B>> for &'a State<_A>
where &'a _A: Shr<&'a _B, Output = _C>,

Source§

type Output = State<_C>

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

fn shr( self, rhs: &'a State<_B>, ) -> <&'a State<_A> as Shr<&'a State<_B>>>::Output

Performs the >> operation. Read more
Source§

impl<'a, _A, _B, _C> Shr<&'a State<_B>> for State<_A>
where _A: Shr<&'a _B, Output = _C>,

Source§

type Output = State<_C>

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

fn shr(self, rhs: &'a State<_B>) -> <State<_A> as Shr<&'a State<_B>>>::Output

Performs the >> operation. Read more
Source§

impl<'a, _A, _B, _C> Shr<State<_B>> for &'a State<_A>
where &'a _A: Shr<_B, Output = _C>,

Source§

type Output = State<_C>

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

fn shr(self, rhs: State<_B>) -> <&'a State<_A> as Shr<State<_B>>>::Output

Performs the >> operation. Read more
Source§

impl<_A, _B, _C> Shr<State<_B>> for State<_A>
where _A: Shr<_B, Output = _C>,

Source§

type Output = State<_C>

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

fn shr(self, rhs: State<_B>) -> <State<_A> as Shr<State<_B>>>::Output

Performs the >> operation. Read more
Source§

impl<_A, _B> ShrAssign<State<_B>> for State<_A>
where _A: ShrAssign<_B>,

Source§

fn shr_assign(&mut self, rhs: State<_B>)

Performs the >>= operation. Read more
Source§

impl<Q> Stated for State<Q>
where Q: RawState,

Source§

type Item = Q

the type of raw state
Source§

fn into_inner(self) -> Q

consumes the wrapper to return the inner state
Source§

fn get(&self) -> &Q

returns a reference to the current state
Source§

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

returns a mutable reference to the current state
Source§

fn set(&mut self, inner: Self::Item) -> &mut Self

update the current state and return a mutable reference to self
Source§

fn replace(&mut self, inner: Self::Item) -> Self::Item

replace the current state with another, returning the previous state
Source§

fn swap(&mut self, other: &mut Self)

swap the current state with another
Source§

fn take(&mut self) -> Self::Item
where Self::Item: Default,

take the current state, leaving the logical default in its place
Source§

impl<'a, _A, _B, _C> Sub<&'a State<_B>> for &'a State<_A>
where &'a _A: Sub<&'a _B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the - operator.
Source§

fn sub( self, rhs: &'a State<_B>, ) -> <&'a State<_A> as Sub<&'a State<_B>>>::Output

Performs the - operation. Read more
Source§

impl<'a, _A, _B, _C> Sub<&'a State<_B>> for State<_A>
where _A: Sub<&'a _B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &'a State<_B>) -> <State<_A> as Sub<&'a State<_B>>>::Output

Performs the - operation. Read more
Source§

impl<'a, _A, _B, _C> Sub<State<_B>> for &'a State<_A>
where &'a _A: Sub<_B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: State<_B>) -> <&'a State<_A> as Sub<State<_B>>>::Output

Performs the - operation. Read more
Source§

impl<_A, _B, _C> Sub<State<_B>> for State<_A>
where _A: Sub<_B, Output = _C>,

Source§

type Output = State<_C>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: State<_B>) -> <State<_A> as Sub<State<_B>>>::Output

Performs the - operation. Read more
Source§

impl<_A, _B> SubAssign<State<_B>> for State<_A>
where _A: SubAssign<_B>,

Source§

fn sub_assign(&mut self, rhs: State<_B>)

Performs the -= operation. Read more
Source§

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

Source§

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

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<(), Error>

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

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

Source§

fn zero() -> State<Q>

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 for State<Q>
where Q: Copy + ?Sized,

Source§

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

Source§

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

Source§

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

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> 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> DecrementAssign for T
where T: One + SubAssign,

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

Source§

fn increment(self) -> T

Source§

impl<T> IncrementAssign for T
where T: One + AddAssign,

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

Source§

impl<T> Incremental for T

Source§

impl<T> NumAssign for T
where T: Num + NumAssignOps,

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<S> Symbolic for S
where S: Copy + Default + Eq + Ord + Debug + Display + Hash + Send + Sync + 'static,