pub struct ConcreteStated<T, S>where
S: StateMarker<Kind = ConcreteStateKind>,{ /* private fields */ }Expand description
Raw runtime data paired with a concrete state marker.
ConcreteStated<T, S> is the narrow escape hatch for implementation-owned
construction. It does not dereference to T and it does not support
transitions; it can only be created unsafely or by helpers generated in the
implementation module, then consumed by State::from_concrete to create a
directly owned state.
Creating this value asserts that the raw T really satisfies the invariant
represented by concrete state S. For public construction, prefer
State::new, which is gated by Initial. For implementation-owned
conversions, use the private with_state_priv helper generated by
StateMachineImpl!.
Implementations§
Source§impl<T, S> ConcreteStated<T, S>where
S: StateMarker<Kind = ConcreteStateKind>,
impl<T, S> ConcreteStated<T, S>where
S: StateMarker<Kind = ConcreteStateKind>,
Auto Trait Implementations§
impl<T, S> Freeze for ConcreteStated<T, S>where
T: Freeze,
impl<T, S> RefUnwindSafe for ConcreteStated<T, S>where
T: RefUnwindSafe,
impl<T, S> Send for ConcreteStated<T, S>where
T: Send,
impl<T, S> StateClone for ConcreteStated<T, S>where
T: StateClone,
impl<T, S> StateCopy for ConcreteStated<T, S>where
T: StateCopy,
impl<T, S> Sync for ConcreteStated<T, S>where
T: Sync,
impl<T, S> Unpin for ConcreteStated<T, S>where
T: Unpin,
impl<T, S> UnsafeUnpin for ConcreteStated<T, S>where
T: UnsafeUnpin,
impl<T, S> UnwindSafe for ConcreteStated<T, S>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more