pub enum Action<L, T> {
RegisterListener(Token, L),
RegisterTransport(Token, T),
UnregisterListener(Token),
UnregisterTransport(Token),
Send(Token, Vec<u8>),
SetTimer(Duration),
}Expand description
Actions which can be provided to the Reactor by the ReactionHandler.
Reactor reads actions on each event loop using ReactionHandler iterator interface.
Variants§
RegisterListener(Token, L)
Register a new listener resource for the reactor poll.
Reactor can’t instantiate the resource, like bind a network listener. Reactor only can register already active resource for polling in the event loop.
RegisterTransport(Token, T)
Register a new transport resource for the reactor poll.
Reactor can’t instantiate the resource, like open a file or establish network connection. Reactor only can register already active resource for polling in the event loop.
UnregisterListener(Token)
Unregister listener resource from the reactor poll and handover it to the ReactionHandler via
ReactionHandler::handover_listener.
When the resource is unregistered no action is performed, i.e. the file descriptor is not closed, listener is not unbound, connections are not closed etc. All these actions must be handled by the handler upon the handover event.
UnregisterTransport(Token)
Unregister transport resource from the reactor poll and handover it to the ReactionHandler via
ReactionHandler::handover_transport.
When the resource is unregistered no action is performed, i.e. the file descriptor is not closed, listener is not unbound, connections are not closed etc. All these actions must be handled by the handler upon the handover event.
Send(Token, Vec<u8>)
Write the data to one of the transport resources using io::Write.
SetTimer(Duration)
Set a new timer for a given duration from this moment.
When the timer elapses, the reactor will timeout from poll and call
ReactionHandler::timer_reacted.
Trait Implementations§
Auto Trait Implementations§
impl<L, T> Freeze for Action<L, T>
impl<L, T> RefUnwindSafe for Action<L, T>where
L: RefUnwindSafe,
T: RefUnwindSafe,
impl<L, T> Send for Action<L, T>
impl<L, T> Sync for Action<L, T>
impl<L, T> Unpin for Action<L, T>
impl<L, T> UnsafeUnpin for Action<L, T>where
L: UnsafeUnpin,
T: UnsafeUnpin,
impl<L, T> UnwindSafe for Action<L, T>where
L: UnwindSafe,
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
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