[][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 + Sync + Send>>, 
[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]

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

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

Responses given by the service.

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

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> Unpin for Buffer<T, Request>

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

impl<T, Request> !UnwindSafe for Buffer<T, Request>

impl<T, Request> !RefUnwindSafe for Buffer<T, Request>

Blanket Implementations

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

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

type Owned = T

The resulting type after obtaining ownership.

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]