pub struct AsyncCommandHandler<M> { /* private fields */ }Expand description
Handles execution of async commands.
This handler spawns async futures as tokio tasks and sends their results back to the runtime via a message channel. It also handles synchronous command actions directly.
Implementations§
Source§impl<M: Send + 'static> AsyncCommandHandler<M>
impl<M: Send + 'static> AsyncCommandHandler<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.
Sourcepub fn spawn_pending(
&mut self,
msg_tx: Sender<M>,
err_tx: Sender<Box<dyn Error + Send + Sync + 'static>>,
cancel: CancellationToken,
)
pub fn spawn_pending( &mut self, msg_tx: Sender<M>, err_tx: Sender<Box<dyn Error + Send + Sync + 'static>>, 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 sync messages.
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 AsyncCommandHandler<M>
impl<M> !RefUnwindSafe for AsyncCommandHandler<M>
impl<M> Send for AsyncCommandHandler<M>where
M: Send,
impl<M> !Sync for AsyncCommandHandler<M>
impl<M> Unpin for AsyncCommandHandler<M>where
M: Unpin,
impl<M> !UnwindSafe for AsyncCommandHandler<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