pub trait OperationService<Op, Exts>: Service<Self::Normalized, Response = Op::Output, Error = Op::Error>where
    Op: OperationShape,{
    type Normalized;

    // Required method
    fn normalize(input: Op::Input, exts: Exts) -> Self::Normalized;
}
Expand description

A utility trait used to provide an even interface for all operation services.

This serves to take [Service]s of the form Service<(Op::Input, Ext0, Ext1, ...)> to the canonical representation of Service<(Input, (Ext0, Ext1, ...))> inline with IntoService.

See operation documentation for more info.

Required Associated Types§

Required Methods§

source

fn normalize(input: Op::Input, exts: Exts) -> Self::Normalized

Implementors§

source§

impl<Op, Ext0, Ext1, S> OperationService<Op, (Ext0, Ext1)> for Swhere Op: OperationShape, S: Service<(Op::Input, Ext0, Ext1), Response = Op::Output, Error = Op::Error>,

§

type Normalized = (<Op as OperationShape>::Input, Ext0, Ext1)

source§

impl<Op, Ext0, S> OperationService<Op, (Ext0,)> for Swhere Op: OperationShape, S: Service<(Op::Input, Ext0), Response = Op::Output, Error = Op::Error>,

§

type Normalized = (<Op as OperationShape>::Input, Ext0)

source§

impl<Op, S> OperationService<Op, ()> for Swhere Op: OperationShape, S: Service<Op::Input, Response = Op::Output, Error = Op::Error>,