Struct tower::buffer::Buffer [−][src]
pub struct Buffer<T, Request> where
T: Service<Request>, { /* fields omitted */ }
Expand description
Adds an mpsc buffer in front of an inner service.
See the module documentation for more details.
Implementations
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.
A note on choosing a bound
When Buffer
’s implementation of poll_ready
returns Poll::Ready
, it reserves a
slot in the channel for the forthcoming call
. However, if this call doesn’t arrive,
this reserved slot may be held up for a long time. As a result, it’s advisable to set
bound
to be at least the maximum number of concurrent requests the Buffer
will see.
If you do not, all the slots in the buffer may be held up by futures that have just called
poll_ready
but will not issue a call
, which prevents other senders from issuing new
requests.
Trait Implementations
type Future = ResponseFuture<T::Future>
type Future = ResponseFuture<T::Future>
The future response value.
Returns Poll::Ready(Ok(()))
when the service is able to process requests. Read more
Auto Trait Implementations
impl<T, Request> !RefUnwindSafe for Buffer<T, Request>
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,
impl<T, Request> !UnwindSafe for Buffer<T, Request>
Blanket Implementations
Mutably borrows from an owned value. Read more
Yields a mutable reference to the service when it is ready to accept a request.
please use the ServiceExt::ready
method instead
Yields a mutable reference to the service when it is ready to accept a request.
fn ready_oneshot(self) -> ReadyOneshot<Self, Request>ⓘNotable traits for ReadyOneshot<T, Request>impl<T, Request> Future for ReadyOneshot<T, Request> where
T: Service<Request>, type Output = Result<T, T::Error>;
where
Self: Sized,
fn ready_oneshot(self) -> ReadyOneshot<Self, Request>ⓘNotable traits for ReadyOneshot<T, Request>impl<T, Request> Future for ReadyOneshot<T, Request> where
T: Service<Request>, type Output = Result<T, T::Error>;
where
Self: Sized,
impl<T, Request> Future for ReadyOneshot<T, Request> where
T: Service<Request>, type Output = Result<T, T::Error>;
Yields the service when it is ready to accept a request.
Consume this Service
, calling with the providing request once it is ready.
Executes a new future after this service’s future resolves. This does
not alter the behaviour of the poll_ready
method. Read more
fn map_response<F, Response>(self, f: F) -> MapResponse<Self, F> where
Self: Sized,
F: FnOnce(Self::Response) -> Response + Clone,
fn map_response<F, Response>(self, f: F) -> MapResponse<Self, F> where
Self: Sized,
F: FnOnce(Self::Response) -> Response + Clone,
Maps this service’s response value to a different value. This does not
alter the behaviour of the poll_ready
method. Read more
Maps this service’s error value to a different value. This does not
alter the behaviour of the poll_ready
method. Read more
Maps this service’s result type (Result<Self::Response, Self::Error>
)
to a different value, regardless of whether the future succeeds or
fails. Read more
fn map_request<F, NewRequest>(self, f: F) -> MapRequest<Self, F> where
Self: Sized,
F: FnMut(NewRequest) -> Request + Clone,
fn map_request<F, NewRequest>(self, f: F) -> MapRequest<Self, F> where
Self: Sized,
F: FnMut(NewRequest) -> Request + Clone,
Composes a function in front of the service. Read more
Composes an asynchronous function after this service. Read more
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more