[][src]Trait actix_service::Transform

pub trait Transform<S> {
    type Request;
    type Response;
    type Error;
    type Transform: Service<Request = Self::Request, Response = Self::Response, Error = Self::Error>;
    type InitError;
    type Future: Future<Output = Result<Self::Transform, Self::InitError>>;
    fn new_transform(&self, service: S) -> Self::Future;

    fn map_init_err<F, E>(self, f: F) -> TransformMapInitErr<Self, S, F, E>
    where
        Self: Sized,
        F: Fn(Self::InitError) -> E + Clone
, { ... } }

The Transform trait defines the interface of a Service factory. Transform is often implemented for middleware, defining how to construct a middleware Service. A Service that is constructed by the factory takes the Service that follows it during execution as a parameter, assuming ownership of the next Service.

Associated Types

type Request

Requests handled by the service.

type Response

Responses given by the service.

type Error

Errors produced by the service.

type Transform: Service<Request = Self::Request, Response = Self::Response, Error = Self::Error>

The TransformService value created by this factory

type InitError

Errors produced while building a service.

type Future: Future<Output = Result<Self::Transform, Self::InitError>>

The future response value.

Loading content...

Required methods

fn new_transform(&self, service: S) -> Self::Future

Creates and returns a new Service component, asynchronously

Loading content...

Provided methods

fn map_init_err<F, E>(self, f: F) -> TransformMapInitErr<Self, S, F, E> where
    Self: Sized,
    F: Fn(Self::InitError) -> E + Clone

Map this transforms's factory error to a different error, returning a new transform service factory.

Loading content...

Implementations on Foreign Types

impl<T, S> Transform<S> for Rc<T> where
    T: Transform<S>, 
[src]

type Request = T::Request

type Response = T::Response

type Error = T::Error

type InitError = T::InitError

type Transform = T::Transform

type Future = T::Future

impl<T, S> Transform<S> for Arc<T> where
    T: Transform<S>, 
[src]

type Request = T::Request

type Response = T::Response

type Error = T::Error

type InitError = T::InitError

type Transform = T::Transform

type Future = T::Future

Loading content...

Implementors

impl<T, S, F, E> Transform<S> for TransformMapInitErr<T, S, F, E> where
    T: Transform<S>,
    F: Fn(T::InitError) -> E + Clone
[src]

type Request = T::Request

type Response = T::Response

type Error = T::Error

type Transform = T::Transform

type InitError = E

type Future = TransformMapInitErrFuture<T, S, F, E>

Loading content...