Skip to main content

Handler

Trait Handler 

Source
pub trait Handler<__Context__, Code, Input>: IsProviderFor<HandlerComponent, __Context__, (Code, Input)>
where __Context__: HasErrorType,
{ type Output; // Required method fn handle( __context__: &__Context__, _tag: PhantomData<Code>, input: Input, ) -> impl Future<Output = Result<Self::Output, __Context__::Error>>; }

Required Associated Types§

Required Methods§

Source

fn handle( __context__: &__Context__, _tag: PhantomData<Code>, input: Input, ) -> impl Future<Output = Result<Self::Output, __Context__::Error>>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<__Context__, Code, Input, __Components__, __Delegate__> Handler<__Context__, Code, Input> for UseDelegate<__Components__>
where __Context__: HasErrorType, __Components__: DelegateComponent<Code, Delegate = __Delegate__>, __Delegate__: Handler<__Context__, Code, Input>,

Source§

type Output = <__Delegate__ as Handler<__Context__, Code, Input>>::Output

Source§

fn handle( __context__: &__Context__, _tag: PhantomData<Code>, input: Input, ) -> impl Future<Output = Result<Self::Output, __Context__::Error>>

Source§

impl<__Context__, Code, Input> Handler<__Context__, Code, Input> for UseContext
where __Context__: HasErrorType + CanHandle<Code, Input>,

Source§

type Output = <__Context__ as CanHandle<Code, Input>>::Output

Source§

fn handle( __context__: &__Context__, _tag: PhantomData<Code>, input: Input, ) -> impl Future<Output = Result<Self::Output, __Context__::Error>>

Implementors§

Source§

impl<Context, Code, Input, Output, Provider> Handler<Context, Code, Input> for Promote<Provider>
where Context: HasErrorType, Provider: AsyncComputer<Context, Code, Input, Output = Output>,

Source§

type Output = Output

Source§

impl<Context, Code, Input, Output, Provider> Handler<Context, Code, Input> for PromoteAsync<Provider>
where Context: HasErrorType, Provider: TryComputer<Context, Code, Input, Output = Output>,

Source§

type Output = Output

Source§

impl<Context, Code, Input, Output, Provider> Handler<Context, Code, Input> for TryPromote<Provider>
where Context: HasErrorType, Provider: AsyncComputer<Context, Code, Input, Output = Result<Output, Context::Error>>,

Source§

type Output = Output

Source§

impl<Context, Code, Input, ProviderA, ProviderB> Handler<Context, Code, Input> for ComposeHandlers<ProviderA, ProviderB>
where Context: HasErrorType, ProviderA: Handler<Context, Code, Input>, ProviderB: Handler<Context, Code, ProviderA::Output>,

Source§

type Output = <ProviderB as Handler<Context, Code, <ProviderA as Handler<Context, Code, Input>>::Output>>::Output

Source§

impl<Context, Code, Input, Target, Provider> Handler<Context, Code, Input> for PromoteRef<Provider>
where Context: HasErrorType, Provider: HandlerRef<Context, Code, Target>, Input: Deref<Target = Target>,

Source§

type Output = <Provider as HandlerRef<Context, Code, Target>>::Output

Source§

impl<Context, Code, Input> Handler<Context, Code, Input> for ReturnInput
where Context: HasErrorType,

Source§

type Output = Input

Source§

impl<__Component__, __Context__, Code, Input> Handler<__Context__, Code, Input> for __Component__
where __Context__: HasErrorType, __Component__: DelegateComponent<HandlerComponent> + IsProviderFor<HandlerComponent, __Context__, (Code, Input)>, __Component__::Delegate: Handler<__Context__, Code, Input>,

Source§

type Output = <<__Component__ as DelegateComponent<HandlerComponent>>::Delegate as Handler<__Context__, Code, Input>>::Output

Source§

impl<__Context__, Code, Input, __Components__, __Delegate__> Handler<__Context__, Code, Input> for UseInputDelegate<__Components__>
where __Context__: HasErrorType, __Components__: DelegateComponent<Input, Delegate = __Delegate__>, __Delegate__: Handler<__Context__, Code, Input>,

Source§

type Output = <__Delegate__ as Handler<__Context__, Code, Input>>::Output