[][src]Struct tower::util::CallAllUnordered

pub struct CallAllUnordered<Svc, S> where
    S: Stream,
    Svc: Service<<S as Stream>::Item>, 
{ /* fields omitted */ }

A stream of responses received from the inner service in received order.

Similar to CallAll except, instead of yielding responses in request order, responses are returned as they are available.

Methods

impl<Svc, S> CallAllUnordered<Svc, S> where
    S: Stream,
    Svc: Service<<S as Stream>::Item>,
    <Svc as Service<<S as Stream>::Item>>::Error: Into<Box<dyn Error + 'static + Send + Sync>>, 
[src]

pub fn new(service: Svc, stream: S) -> CallAllUnordered<Svc, S>[src]

Create new CallAllUnordered combinator.

Each request yielded by stread is passed to svc, and the resulting responses are yielded in the same order by the implementation of Stream for CallAllUnordered.

pub fn into_inner(self) -> Svc[src]

Extract the wrapped Service.

Panics

Panics if take_service was already called.

pub fn take_service(self: Pin<&mut CallAllUnordered<Svc, S>>) -> Svc[src]

Extract the wrapped Service.

This CallAll can no longer be used after this function has been called.

Panics

Panics if take_service was already called.

Trait Implementations

impl<'_pin, Svc, S> Unpin for CallAllUnordered<Svc, S> where
    S: Stream,
    Svc: Service<<S as Stream>::Item>,
    __UnpinStructCallAllUnordered<'_pin, Svc, S>: Unpin
[src]

impl<Svc, S> Stream for CallAllUnordered<Svc, S> where
    S: Stream,
    Svc: Service<<S as Stream>::Item>,
    Box<dyn Error + 'static + Send + Sync>: From<<Svc as Service<<S as Stream>::Item>>::Error>, 
[src]

type Item = Result<<Svc as Service<<S as Stream>::Item>>::Response, Box<dyn Error + 'static + Send + Sync>>

Values yielded by the stream.

impl<Svc, S> Debug for CallAllUnordered<Svc, S> where
    S: Debug + Stream,
    Svc: Debug + Service<<S as Stream>::Item>,
    <Svc as Service<<S as Stream>::Item>>::Future: Debug
[src]

Auto Trait Implementations

impl<Svc, S> Send for CallAllUnordered<Svc, S> where
    S: Send,
    Svc: Send,
    <Svc as Service<<S as Stream>::Item>>::Future: Send

impl<Svc, S> Sync for CallAllUnordered<Svc, S> where
    S: Sync,
    Svc: Sync,
    <Svc as Service<<S as Stream>::Item>>::Future: Sync

impl<Svc, S> !UnwindSafe for CallAllUnordered<Svc, S>

impl<Svc, S> !RefUnwindSafe for CallAllUnordered<Svc, S>

Blanket Implementations

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

impl<T> From<T> for T[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<T> BorrowMut<T> for T where
    T: ?Sized
[src]

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

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

impl<S, T, E> TryStream for S where
    S: Stream<Item = Result<T, E>> + ?Sized
[src]

type Ok = T

The type of successful values yielded by this future

type Error = E

The type of failures yielded by this future

impl<T> StreamExt for T where
    T: Stream + ?Sized
[src]

impl<S> TryStreamExt for S where
    S: TryStream + ?Sized
[src]