[][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> 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.

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

Auto Trait Implementations

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> Send for Buffer<T, Request> where
    Request: Send,
    <T as Service<Request>>::Future: Send

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

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

Blanket Implementations

impl<T, Request> ServiceExt<Request> 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> From<T> for T[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, 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> Borrow<T> for T where
    T: ?Sized
[src]

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

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

impl<C, Target> MakeConnection<Target> 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<Target, Request> 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.