Skip to main content

Computer

Trait Computer 

Source
pub trait Computer<__Context__, Code, Input>: IsProviderFor<ComputerComponent, __Context__, (Code, Input)> {
    type Output;

    // Required method
    fn compute(
        __context__: &__Context__,
        _code: PhantomData<Code>,
        input: Input,
    ) -> Self::Output;
}

Required Associated Types§

Required Methods§

Source

fn compute( __context__: &__Context__, _code: PhantomData<Code>, input: Input, ) -> Self::Output

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, Tag, Output> Computer<Context, Code, Input> for UseField<Tag>
where Context: HasField<Tag>, Context::Value: CanCompute<Code, Input, Output = Output>,

Source§

type Output = Output

Source§

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

Source§

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

Source§

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

Source§

fn compute( __context__: &__Context__, _code: PhantomData<Code>, input: Input, ) -> Self::Output

Source§

impl<__Context__, Code, Input> Computer<__Context__, Code, Input> for UseContext
where __Context__: CanCompute<Code, Input>,

Source§

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

Source§

fn compute( __context__: &__Context__, _code: PhantomData<Code>, input: Input, ) -> Self::Output

Implementors§

Source§

impl<Context, Code, Input, Output, Provider> Computer<Context, Code, Input> for Promote<Provider>
where Provider: Producer<Context, Code, Output = Output>,

Source§

type Output = Output

Source§

impl<Context, Code, Input, Provider, Output> Computer<Context, Code, Input> for TryPromote<Provider>
where Context: HasErrorType, Provider: TryComputer<Context, Code, Input, Output = Output>,

Source§

type Output = Result<Output, <Context as HasErrorType>::Error>

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§

impl<Context, Code, Input, Target, Provider> Computer<Context, Code, Input> for PromoteRef<Provider>
where Provider: ComputerRef<Context, Code, Target>, Input: Deref<Target = Target>,

Source§

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

Source§

impl<Context, Code, Input> Computer<Context, Code, Input> for ReturnInput

Source§

type Output = Input

Source§

impl<__Component__, __Context__, Code, Input> Computer<__Context__, Code, Input> for __Component__
where __Component__: DelegateComponent<ComputerComponent> + IsProviderFor<ComputerComponent, __Context__, (Code, Input)>, __Component__::Delegate: Computer<__Context__, Code, Input>,

Source§

type Output = <<__Component__ as DelegateComponent<ComputerComponent>>::Delegate as Computer<__Context__, Code, Input>>::Output

Source§

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

Source§

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