pub struct EventQueues<E, const DEFERRED: usize, const PROCESSED: usize> { /* private fields */ }Expand description
Separate bounded queues for deferred events and events requested by actions.
Implementations§
Source§impl<E, const DEFERRED: usize, const PROCESSED: usize> EventQueues<E, DEFERRED, PROCESSED>
impl<E, const DEFERRED: usize, const PROCESSED: usize> EventQueues<E, DEFERRED, PROCESSED>
Sourcepub fn defer(&mut self, event: E) -> Result<(), QueueFull>
pub fn defer(&mut self, event: E) -> Result<(), QueueFull>
Defers an event until a dispatch changes state.
Sourcepub fn process(&mut self, event: E) -> Result<(), QueueFull>
pub fn process(&mut self, event: E) -> Result<(), QueueFull>
Schedules an event for immediate processing after the current action.
Sourcepub const fn deferred_len(&self) -> usize
pub const fn deferred_len(&self) -> usize
Returns the number of deferred events.
Sourcepub const fn processed_len(&self) -> usize
pub const fn processed_len(&self) -> usize
Returns the number of immediately processed events.
Sourcepub fn dispatch<M, F>(
&mut self,
machine: &mut M,
event: E,
dispatch: F,
) -> DispatchSummary
pub fn dispatch<M, F>( &mut self, machine: &mut M, event: E, dispatch: F, ) -> DispatchSummary
Dispatches an external event, drains action-requested events, and gives each previously deferred event one retry after a state change.
Trait Implementations§
Auto Trait Implementations§
impl<E, const DEFERRED: usize, const PROCESSED: usize> Freeze for EventQueues<E, DEFERRED, PROCESSED>where
E: Freeze,
impl<E, const DEFERRED: usize, const PROCESSED: usize> RefUnwindSafe for EventQueues<E, DEFERRED, PROCESSED>where
E: RefUnwindSafe,
impl<E, const DEFERRED: usize, const PROCESSED: usize> Send for EventQueues<E, DEFERRED, PROCESSED>where
E: Send,
impl<E, const DEFERRED: usize, const PROCESSED: usize> Sync for EventQueues<E, DEFERRED, PROCESSED>where
E: Sync,
impl<E, const DEFERRED: usize, const PROCESSED: usize> Unpin for EventQueues<E, DEFERRED, PROCESSED>where
E: Unpin,
impl<E, const DEFERRED: usize, const PROCESSED: usize> UnsafeUnpin for EventQueues<E, DEFERRED, PROCESSED>where
E: UnsafeUnpin,
impl<E, const DEFERRED: usize, const PROCESSED: usize> UnwindSafe for EventQueues<E, DEFERRED, PROCESSED>where
E: 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