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

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<Op, Ext0, Ext1, S> OperationService<Op, (Ext0, Ext1)> for S
where 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 S
where 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 S
where Op: OperationShape, S: Service<Op::Input, Response = Op::Output, Error = Op::Error>,