pub struct CommandHandler<M> { /* private fields */ }Expand description
Handles execution of commands.
This handler processes sync actions immediately and collects async futures for later spawning as tokio tasks.
Implementations§
Source§impl<M: Send + 'static> CommandHandler<M>
impl<M: Send + 'static> CommandHandler<M>
Sourcepub fn execute(&mut self, command: Command<M>)
pub fn execute(&mut self, command: Command<M>)
Executes a command, collecting sync messages and async futures.
Sync actions (Message, Batch, Quit, Callback) are processed immediately.
Async actions are collected for later spawning via spawn_pending.
Sourcepub fn spawn_pending(
&mut self,
msg_tx: Sender<M>,
err_tx: Sender<BoxedError>,
cancel: CancellationToken,
)
pub fn spawn_pending( &mut self, msg_tx: Sender<M>, err_tx: Sender<BoxedError>, cancel: CancellationToken, )
Spawns all pending async futures as tokio tasks.
Each future is spawned with access to the message sender and cancellation token.
When a future completes with Some(message), the message is sent to the runtime.
For fallible futures, errors are sent to the error channel instead.
Sourcepub fn take_messages(&mut self) -> Vec<M>
pub fn take_messages(&mut self) -> Vec<M>
Takes all pending messages.
Sourcepub fn take_overlay_pushes(&mut self) -> Vec<Box<dyn Overlay<M> + Send>>
pub fn take_overlay_pushes(&mut self) -> Vec<Box<dyn Overlay<M> + Send>>
Takes all pending overlay pushes.
Sourcepub fn take_overlay_pops(&mut self) -> usize
pub fn take_overlay_pops(&mut self) -> usize
Takes the count of pending overlay pops and resets the counter.
Sourcepub fn has_pending_futures(&self) -> bool
pub fn has_pending_futures(&self) -> bool
Returns true if any async futures are pending.
Sourcepub fn pending_future_count(&self) -> usize
pub fn pending_future_count(&self) -> usize
Returns the number of pending async futures.
Sourcepub fn should_quit(&self) -> bool
pub fn should_quit(&self) -> bool
Returns true if a quit command was executed.
Sourcepub fn reset_quit(&mut self)
pub fn reset_quit(&mut self)
Resets the quit flag.
Trait Implementations§
Auto Trait Implementations§
impl<M> Freeze for CommandHandler<M>
impl<M> !RefUnwindSafe for CommandHandler<M>
impl<M> Send for CommandHandler<M>where
M: Send,
impl<M> !Sync for CommandHandler<M>
impl<M> Unpin for CommandHandler<M>where
M: Unpin,
impl<M> UnsafeUnpin for CommandHandler<M>
impl<M> !UnwindSafe for CommandHandler<M>
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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