pub struct Chain { /* private fields */ }
Expand description
Represents a chain of handlers.
The chain allows you to configure multiple handlers for the crate::App
.
There are two strategies to run handlers:
Self::once
- the chain runs only a first found handler.Self::all
- the chain runs all found handlers.
A Handler
considered found when TryFromInput::try_from_input
for the handler returns Some
.
Handlers are dispatched in the order they are added.
If a handler returns an error, all subsequent handlers will not run.
Implementations§
Trait Implementations§
source§impl Handler<HandlerInput> for Chain
impl Handler<HandlerInput> for Chain
§type Output = Result<(), HandlerError>
type Output = Result<(), HandlerError>
A future output returned by
Self::handle
method. Read moreAuto Trait Implementations§
impl Freeze for Chain
impl !RefUnwindSafe for Chain
impl Send for Chain
impl Sync for Chain
impl Unpin for Chain
impl !UnwindSafe for Chain
Blanket Implementations§
source§impl<P, H, HI> AccessExt<P, HI> for Hwhere
H: Handler<HI>,
HI: TryFromInput,
impl<P, H, HI> AccessExt<P, HI> for Hwhere
H: Handler<HI>,
HI: TryFromInput,
source§fn with_access_policy(
self,
policy: P
) -> Predicate<AccessPredicate<P>, HandlerInput, Self, HI>
fn with_access_policy( self, policy: P ) -> Predicate<AccessPredicate<P>, HandlerInput, Self, HI>
Available on crate feature
access
only.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
source§impl<H, I> CommandExt<I> for Hwhere
H: Handler<I>,
I: TryFromInput,
impl<H, I> CommandExt<I> for Hwhere
H: Handler<I>,
I: TryFromInput,
source§fn with_command<S: Into<String>>(
self,
name: S
) -> Predicate<CommandPredicate, Command, Self, I>
fn with_command<S: Into<String>>( self, name: S ) -> Predicate<CommandPredicate, Command, Self, I>
Shortcut to create a command handler. Read more
source§impl<P, PI, H, HI, HS> DialogueExt<P, PI, HI, HS> for H
impl<P, PI, H, HI, HS> DialogueExt<P, PI, HI, HS> for H
source§fn with_dialogue<B>(
self,
predicate: P
) -> Predicate<DialoguePredicate<B, P, PI, HS>, HandlerInput, DialogueDecorator<B, Self, HI, HS>, HandlerInput>
fn with_dialogue<B>( self, predicate: P ) -> Predicate<DialoguePredicate<B, P, PI, HS>, HandlerInput, DialogueDecorator<B, Self, HI, HS>, HandlerInput>
Available on crate feature
dialogue
only.source§impl<E, H, HI> ErrorExt<E, HI> for Hwhere
H: Handler<HI>,
HI: TryFromInput,
impl<E, H, HI> ErrorExt<E, HI> for Hwhere
H: Handler<HI>,
HI: TryFromInput,
source§fn on_error(self, error_handler: E) -> ErrorDecorator<E, Self, HI>
fn on_error(self, error_handler: E) -> ErrorDecorator<E, Self, HI>
A shortcut to create a new error decorator. Read more
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
Converts
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