[][src]Struct tower::buffer::Buffer

pub struct Buffer<T, Request> where
    T: Service<Request>, 
{ /* fields omitted */ }

Adds a buffer in front of an inner service.

See crate level documentation for more details.

Methods

impl<T, Request> Buffer<T, Request> where
    T: Service<Request>,
    <T as Service<Request>>::Error: Into<Box<dyn Error + 'static + Send + Sync>>, 
[src]

pub fn new(service: T, bound: usize) -> Buffer<T, Request> where
    Request: Send + 'static,
    T: Send + 'static,
    <T as Service<Request>>::Future: Send,
    <T as Service<Request>>::Error: Send,
    <T as Service<Request>>::Error: Sync
[src]

Creates a new Buffer wrapping service.

bound gives the maximal number of requests that can be queued for the service before backpressure is applied to callers.

The default Tokio executor is used to run the given service, which means that this method must be called while on the Tokio runtime.

pub fn with_executor<E>(
    service: T,
    bound: usize,
    executor: &mut E
) -> Buffer<T, Request> where
    E: WorkerExecutor<T, Request>, 
[src]

Creates a new Buffer wrapping service.

executor is used to spawn a new Worker task that is dedicated to draining the buffer and dispatching the requests to the internal service.

bound gives the maximal number of requests that can be queued for the service before backpressure is applied to callers.

Trait Implementations

impl<T, Request> Clone for Buffer<T, Request> where
    T: Service<Request>, 
[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl<T, Request> Service<Request> for Buffer<T, Request> where
    T: Service<Request>,
    <T as Service<Request>>::Error: Into<Box<dyn Error + 'static + Send + Sync>>, 
[src]

type Response = <T as Service<Request>>::Response

Responses given by the service.

type Error = Box<dyn Error + 'static + Send + Sync>

Errors produced by the service.

type Future = ResponseFuture<<T as Service<Request>>::Future>

The future response value.

Auto Trait Implementations

impl<T, Request> Send for Buffer<T, Request> where
    Request: Send,
    <T as Service<Request>>::Future: Send

impl<T, Request> Sync for Buffer<T, Request> where
    Request: Send,
    <T as Service<Request>>::Future: Send

Blanket Implementations

impl<T, Request> ServiceExt for T where
    T: Service<Request> + ?Sized
[src]

fn ready(self) -> Ready<Self, Request> where
    Self: Sized
[src]

A future yielding the service when it is ready to accept a request.

fn oneshot(self, req: Request) -> Oneshot<Self, Request> where
    Self: Sized
[src]

Consume this Service, calling with the providing request once it is ready.

fn call_all<S>(self, reqs: S) -> CallAll<Self, S> where
    Self: Sized,
    Self::Error: Into<Box<dyn Error + Send + Sync>>,
    S: Stream<Item = Request>,
    S::Error: Into<Box<dyn Error + Send + Sync>>, 
[src]

Process all requests from the given Stream, and produce a Stream of their responses. Read more

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

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> From for T[src]

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

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

impl<T, U> TryInto 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<C, Target> MakeConnection for C where
    C: Service<Target>,
    <C as Service<Target>>::Response: AsyncRead,
    <C as Service<Target>>::Response: AsyncWrite
[src]

type Connection = <C as Service<Target>>::Response

The transport provided by this service

type Error = <C as Service<Target>>::Error

Errors produced by the connecting service

type Future = <C as Service<Target>>::Future

The future that eventually produces the transport

impl<M, S, Target, Request> MakeService for M where
    M: Service<Target, Response = S>,
    S: Service<Request>, 
[src]

type Response = <S as Service<Request>>::Response

Responses given by the service

type Error = <S as Service<Request>>::Error

Errors produced by the service

type Service = S

The Service value created by this factory

type MakeError = <M as Service<Target>>::Error

Errors produced while building a service.

type Future = <M as Service<Target>>::Future

The future of the Service instance.