ComposeHandlers

Struct ComposeHandlers 

Source
pub struct ComposeHandlers<ProviderA, ProviderB>(pub PhantomData<(ProviderA, ProviderB)>);

Tuple Fields§

§0: PhantomData<(ProviderA, ProviderB)>

Trait Implementations§

Source§

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

Source§

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

Source§

async fn compute_async( context: &Context, code: PhantomData<Code>, input: Input, ) -> Self::Output

Source§

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

Source§

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

Source§

fn compute( context: &Context, code: PhantomData<Code>, input: Input, ) -> Self::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§

async fn handle( context: &Context, code: PhantomData<Code>, input: Input, ) -> Result<Self::Output, Context::Error>

Source§

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

Source§

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

Source§

fn try_compute( context: &Context, code: PhantomData<Code>, input: Input, ) -> Result<Self::Output, Context::Error>

Source§

impl<Context, Code, Input, ProviderA, ProviderB> IsProviderFor<AsyncComputerComponent, Context, (Code, Input)> for ComposeHandlers<ProviderA, ProviderB>
where ProviderA: IsProviderFor<AsyncComputerComponent, Context, (Code, Input)> + AsyncComputer<Context, Code, Input>, ProviderB: IsProviderFor<AsyncComputerComponent, Context, (Code, ProviderA::Output)> + AsyncComputer<Context, Code, ProviderA::Output>,

Source§

impl<Context, Code, Input, ProviderA, ProviderB> IsProviderFor<ComputerComponent, Context, (Code, Input)> for ComposeHandlers<ProviderA, ProviderB>
where ProviderA: IsProviderFor<ComputerComponent, Context, (Code, Input)> + Computer<Context, Code, Input>, ProviderB: IsProviderFor<ComputerComponent, Context, (Code, ProviderA::Output)> + Computer<Context, Code, ProviderA::Output>,

Source§

impl<Context, Code, Input, ProviderA, ProviderB> IsProviderFor<HandlerComponent, Context, (Code, Input)> for ComposeHandlers<ProviderA, ProviderB>
where Context: HasErrorType, ProviderA: IsProviderFor<HandlerComponent, Context, (Code, Input)> + Handler<Context, Code, Input>, ProviderB: IsProviderFor<HandlerComponent, Context, (Code, ProviderA::Output)> + Handler<Context, Code, ProviderA::Output>,

Source§

impl<Context, Code, Input, ProviderA, ProviderB> IsProviderFor<TryComputerComponent, Context, (Code, Input)> for ComposeHandlers<ProviderA, ProviderB>
where Context: HasErrorType, ProviderA: IsProviderFor<TryComputerComponent, Context, (Code, Input)> + TryComputer<Context, Code, Input>, ProviderB: IsProviderFor<TryComputerComponent, Context, (Code, ProviderA::Output)> + TryComputer<Context, Code, ProviderA::Output>,

Auto Trait Implementations§

§

impl<ProviderA, ProviderB> Freeze for ComposeHandlers<ProviderA, ProviderB>

§

impl<ProviderA, ProviderB> RefUnwindSafe for ComposeHandlers<ProviderA, ProviderB>
where ProviderA: RefUnwindSafe, ProviderB: RefUnwindSafe,

§

impl<ProviderA, ProviderB> Send for ComposeHandlers<ProviderA, ProviderB>
where ProviderA: Send, ProviderB: Send,

§

impl<ProviderA, ProviderB> Sync for ComposeHandlers<ProviderA, ProviderB>
where ProviderA: Sync, ProviderB: Sync,

§

impl<ProviderA, ProviderB> Unpin for ComposeHandlers<ProviderA, ProviderB>
where ProviderA: Unpin, ProviderB: Unpin,

§

impl<ProviderA, ProviderB> UnwindSafe for ComposeHandlers<ProviderA, ProviderB>
where ProviderA: UnwindSafe, ProviderB: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Builder, Source, Output> CanBuildFrom<Source> for Builder
where Source: HasFields + IntoBuilder, <Source as HasFields>::Fields: FieldsBuilder<<Source as IntoBuilder>::Builder, Builder, Output = Output>,

Source§

type Output = Output

Source§

fn build_from(self, source: Source) -> Output

Source§

impl<Source, Target, Remainder> CanDowncastFields<Target> for Source
where Target: HasFields, <Target as HasFields>::Fields: FieldsExtractor<Source, Target, Remainder = Remainder>,

Source§

type Remainder = Remainder

Source§

fn downcast_fields( self, _tag: PhantomData<Target>, ) -> Result<Target, <Source as CanDowncastFields<Target>>::Remainder>

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.