[−][src]Struct tower::buffer::Buffer
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]
T: Service<Request>,
<T as Service<Request>>::Error: Into<Box<dyn Error + 'static + Sync + Send>>,
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]
Request: Send + 'static,
T: Send + 'static,
<T as Service<Request>>::Future: Send,
<T as Service<Request>>::Error: Send,
<T as Service<Request>>::Error: Sync,
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]
service: T,
bound: usize,
executor: &mut E
) -> Buffer<T, Request> where
E: WorkerExecutor<T, Request>,
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 + Sync + Send>>,
[src]
T: Service<Request>,
<T as Service<Request>>::Error: Into<Box<dyn Error + 'static + Sync + Send>>,
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.
fn poll_ready(
&mut self
) -> Result<Async<()>, <Buffer<T, Request> as Service<Request>>::Error>
[src]
&mut self
) -> Result<Async<()>, <Buffer<T, Request> as Service<Request>>::Error>
fn call(
&mut self,
request: Request
) -> <Buffer<T, Request> as Service<Request>>::Future
[src]
&mut self,
request: Request
) -> <Buffer<T, Request> as Service<Request>>::Future
impl<T, Request> Clone for Buffer<T, Request> where
T: Service<Request>,
[src]
T: Service<Request>,
Auto Trait Implementations
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> 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> !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]
T: Service<Request> + ?Sized,
fn ready(self) -> Ready<Self, Request> where
Self: Sized,
[src]
Self: Sized,
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]
Self: Sized,
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]
Self: Sized,
Self::Error: Into<Box<dyn Error + Send + Sync>>,
S: Stream<Item = Request>,
S::Error: Into<Box<dyn Error + Send + Sync>>,
Process all requests from the given Stream
, and produce a Stream
of their responses. Read more
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.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> From<T> for 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.
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>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<C, Target> MakeConnection<Target> for C where
C: Service<Target>,
<C as Service<Target>>::Response: AsyncRead,
<C as Service<Target>>::Response: AsyncWrite,
[src]
C: Service<Target>,
<C as Service<Target>>::Response: AsyncRead,
<C as Service<Target>>::Response: AsyncWrite,
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
fn poll_ready(
&mut self
) -> Result<Async<()>, <C as MakeConnection<Target>>::Error>
[src]
&mut self
) -> Result<Async<()>, <C as MakeConnection<Target>>::Error>
fn make_connection(
&mut self,
target: Target
) -> <C as MakeConnection<Target>>::Future
[src]
&mut self,
target: Target
) -> <C as MakeConnection<Target>>::Future
impl<M, S, Target, Request> MakeService<Target, Request> for M where
M: Service<Target, Response = S>,
S: Service<Request>,
[src]
M: Service<Target, Response = S>,
S: Service<Request>,
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.
fn poll_ready(
&mut self
) -> Result<Async<()>, <M as MakeService<Target, Request>>::MakeError>
[src]
&mut self
) -> Result<Async<()>, <M as MakeService<Target, Request>>::MakeError>
fn make_service(
&mut self,
target: Target
) -> <M as MakeService<Target, Request>>::Future
[src]
&mut self,
target: Target
) -> <M as MakeService<Target, Request>>::Future