[][src]Struct swagger::composites::CompositeMakeService

pub struct CompositeMakeService<Target, ReqBody, ResBody, Error, MakeError>(_)
where
    ResBody: NotFound<ResBody>
;

Wraps a vector of pairs, each consisting of a base path as a &'static str and a MakeService instance. Implements Deref<Vec> and DerefMut<Vec> so these can be manipulated using standard Vec methods.

The Service returned by calling make_service() will pass an incoming request to the first Service in the list for which the associated base path is a prefix of the request path.

Example Usage

This example is not tested
let my_make_service1 = MakeService1::new();
let my_make_service2 = MakeService2::new();

let mut composite_make_service = CompositeMakeService::new();
composite_make_service.push(("/base/path/1", my_make_service1));
composite_make_service.push(("/base/path/2", my_make_service2));

// use as you would any `MakeService` instance

Implementations

impl<Target, ReqBody, ResBody, Error, MakeError> CompositeMakeService<Target, ReqBody, ResBody, Error, MakeError> where
    ResBody: NotFound<ResBody>, 
[src]

pub fn new() -> Self[src]

create an empty CompositeMakeService

Trait Implementations

impl<Target, ReqBody, ResBody, Error, MakeError> Debug for CompositeMakeService<Target, ReqBody, ResBody, Error, MakeError> where
    ResBody: NotFound<ResBody>, 
[src]

impl<Target: Default, ReqBody: Default, ResBody: Default, Error: Default, MakeError: Default> Default for CompositeMakeService<Target, ReqBody, ResBody, Error, MakeError> where
    ResBody: NotFound<ResBody>, 
[src]

impl<Target, ReqBody, ResBody, Error, MakeError> Deref for CompositeMakeService<Target, ReqBody, ResBody, Error, MakeError> where
    ResBody: NotFound<ResBody>, 
[src]

type Target = Vec<(&'static str, Box<dyn CompositedMakeService<Target, ReqBody, ResBody, Error, MakeError> + Send>)>

The resulting type after dereferencing.

impl<Target, ReqBody, ResBody, Error, MakeError> DerefMut for CompositeMakeService<Target, ReqBody, ResBody, Error, MakeError> where
    ResBody: NotFound<ResBody>, 
[src]

impl<'a, ReqBody, ResBody, Error, MakeError> Service<&'a AddrStream> for CompositeMakeService<Option<SocketAddr>, ReqBody, ResBody, Error, MakeError> where
    ReqBody: 'static,
    ResBody: NotFound<ResBody> + 'static,
    MakeError: Send + 'static,
    Error: 'static, 
[src]

type Error = MakeError

Errors produced by the service.

type Response = CompositeService<ReqBody, ResBody, Error>

Responses given by the service.

type Future = BoxFuture<'static, Result<Self::Response, Self::Error>>

The future response value.

impl<'a, ReqBody, ResBody, Error, MakeError> Service<&'a Option<SocketAddr>> for CompositeMakeService<Option<SocketAddr>, ReqBody, ResBody, Error, MakeError> where
    ReqBody: 'static,
    ResBody: NotFound<ResBody> + 'static,
    MakeError: Send + 'static,
    Error: 'static, 
[src]

type Error = MakeError

Errors produced by the service.

type Response = CompositeService<ReqBody, ResBody, Error>

Responses given by the service.

type Future = BoxFuture<'static, Result<Self::Response, Self::Error>>

The future response value.

Auto Trait Implementations

impl<Target, ReqBody, ResBody, Error, MakeError> !RefUnwindSafe for CompositeMakeService<Target, ReqBody, ResBody, Error, MakeError>

impl<Target, ReqBody, ResBody, Error, MakeError> Send for CompositeMakeService<Target, ReqBody, ResBody, Error, MakeError>

impl<Target, ReqBody, ResBody, Error, MakeError> !Sync for CompositeMakeService<Target, ReqBody, ResBody, Error, MakeError>

impl<Target, ReqBody, ResBody, Error, MakeError> Unpin for CompositeMakeService<Target, ReqBody, ResBody, Error, MakeError>

impl<Target, ReqBody, ResBody, Error, MakeError> !UnwindSafe for CompositeMakeService<Target, ReqBody, ResBody, Error, MakeError>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T, S, F, Target, ReqBody, ResBody, Error, MakeError> CompositedMakeService<Target, ReqBody, ResBody, Error, MakeError> for T where
    F: Future<Output = Result<S, MakeError>> + Send + 'static,
    S: CompositedService<ReqBody, ResBody, Error> + Send + 'static,
    T: Service<Target, Response = S, Future = F, Error = MakeError> + Send,
    Target: Send
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<B> NotFound<B> for B where
    B: Default
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,