Struct tower_buffer::Buffer [−][src]
Adds a buffer in front of an inner service.
See crate level documentation for more details.
Implementations
impl<T, Request> Buffer<T, Request> where
T: Service<Request>,
T::Error: Into<Box<dyn Error + Send + Sync>>, [src]
T: Service<Request>,
T::Error: Into<Box<dyn Error + Send + Sync>>,
pub fn new(service: T, bound: usize) -> Self where
T: Send + 'static,
T::Future: Send,
T::Error: Send + Sync,
Request: Send + 'static, [src]
T: Send + 'static,
T::Future: Send,
T::Error: Send + Sync,
Request: Send + 'static,
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 pair(
service: T,
bound: usize
) -> (Buffer<T, Request>, Worker<T, Request>) where
T: Send + 'static,
T::Error: Send + Sync,
Request: Send + 'static, [src]
service: T,
bound: usize
) -> (Buffer<T, Request>, Worker<T, Request>) where
T: Send + 'static,
T::Error: Send + Sync,
Request: Send + 'static,
Creates a new Buffer wrapping service but returns the background worker.
This is useful if you do not want to spawn directly onto the tokio runtime
but instead want to use your own executor. This will return the Buffer and
the background Worker that you can then spawn.
Trait Implementations
impl<T, Request> Clone for Buffer<T, Request> where
T: Service<Request>, [src]
T: Service<Request>,
fn clone(&self) -> Self[src]
pub fn clone_from(&mut self, source: &Self)1.0.0[src]
impl<T: Debug, Request: Debug> Debug for Buffer<T, Request> where
T: Service<Request>,
T::Future: Debug, [src]
T: Service<Request>,
T::Future: Debug,
impl<T, Request> Service<Request> for Buffer<T, Request> where
T: Service<Request>,
T::Error: Into<Box<dyn Error + Send + Sync>>, [src]
T: Service<Request>,
T::Error: Into<Box<dyn Error + Send + Sync>>,
type Response = T::Response
Responses given by the service.
type Error = Box<dyn Error + Send + Sync>
Errors produced by the service.
type Future = ResponseFuture<T::Future>
The future response value.
fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>[src]
fn call(&mut self, request: Request) -> Self::Future[src]
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,
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,
Request: Send,
<T as Service<Request>>::Future: Send,
impl<T, Request> Unpin for Buffer<T, Request>
impl<T, Request> !UnwindSafe for Buffer<T, Request>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T> Instrument for T[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>[src]
pub fn in_current_span(self) -> Instrumented<Self>[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,