pub struct Pool<MS, Target, Request>where
MS: MakeService<Target, Request>,
MS::MakeError: Into<BoxError>,
MS::Error: Into<BoxError>,
Target: Clone,{ /* private fields */ }Available on crate feature
balance only.Expand description
A dynamically sized, load-balanced pool of Service instances.
Implementations§
source§impl<MS, Target, Request> Pool<MS, Target, Request>
impl<MS, Target, Request> Pool<MS, Target, Request>
sourcepub fn new(make_service: MS, target: Target) -> Self
pub fn new(make_service: MS, target: Target) -> Self
Construct a new dynamically sized Pool.
If many calls to poll_ready return Pending, new_service is used to
construct another Service that is then added to the load-balanced pool.
If many calls to poll_ready succeed, the most recently added Service
is dropped from the pool.
Trait Implementations§
source§impl<MS, Target, Req> Service<Req> for Pool<MS, Target, Req>
impl<MS, Target, Req> Service<Req> for Pool<MS, Target, Req>
§type Response = <Balance<Pin<Box<PoolDiscoverer<MS, Target, Req>>>, Req> as Service<Req>>::Response
type Response = <Balance<Pin<Box<PoolDiscoverer<MS, Target, Req>>>, Req> as Service<Req>>::Response
Responses given by the service.
§type Error = <Balance<Pin<Box<PoolDiscoverer<MS, Target, Req>>>, Req> as Service<Req>>::Error
type Error = <Balance<Pin<Box<PoolDiscoverer<MS, Target, Req>>>, Req> as Service<Req>>::Error
Errors produced by the service.
§type Future = <Balance<Pin<Box<PoolDiscoverer<MS, Target, Req>>>, Req> as Service<Req>>::Future
type Future = <Balance<Pin<Box<PoolDiscoverer<MS, Target, Req>>>, Req> as Service<Req>>::Future
The future response value.
Auto Trait Implementations§
impl<MS, Target, Request> !Freeze for Pool<MS, Target, Request>
impl<MS, Target, Request> !RefUnwindSafe for Pool<MS, Target, Request>
impl<MS, Target, Request> Send for Pool<MS, Target, Request>where
<MS as MakeService<Target, Request>>::Error: Sized,
<MS as MakeService<Target, Request>>::MakeError: Sized,
Request: Send,
MS: Send,
Target: Send,
<MS as MakeService<Target, Request>>::Future: Send,
<MS as MakeService<Target, Request>>::Service: Send,
impl<MS, Target, Request> Sync for Pool<MS, Target, Request>where
<MS as MakeService<Target, Request>>::Error: Sized,
<MS as MakeService<Target, Request>>::MakeError: Sized,
Request: Sync + Send,
MS: Sync,
Target: Sync,
<MS as MakeService<Target, Request>>::Future: Sync,
<MS as MakeService<Target, Request>>::Service: Send + Sync,
impl<MS, Target, Request> Unpin for Pool<MS, Target, Request>where
<MS as MakeService<Target, Request>>::Error: Sized,
<MS as MakeService<Target, Request>>::MakeError: Sized,
Request: Unpin,
impl<MS, Target, Request> !UnwindSafe for Pool<MS, Target, Request>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<M, S, Target, Request> MakeService<Target, Request> for M
impl<M, S, Target, Request> MakeService<Target, Request> for M
§type Response = <S as Service<Request>>::Response
type Response = <S as Service<Request>>::Response
Available on crate feature
make only.Responses given by the service
§type Error = <S as Service<Request>>::Error
type Error = <S as Service<Request>>::Error
Available on crate feature
make only.Errors produced by the service
§type MakeError = <M as Service<Target>>::Error
type MakeError = <M as Service<Target>>::Error
Available on crate feature
make only.Errors produced while building a service.
§type Future = <M as Service<Target>>::Future
type Future = <M as Service<Target>>::Future
Available on crate feature
make only.The future of the
Service instance.source§fn poll_ready(
&mut self,
cx: &mut Context<'_>,
) -> Poll<Result<(), <M as MakeService<Target, Request>>::MakeError>>
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <M as MakeService<Target, Request>>::MakeError>>
Available on crate feature
make only.Returns
Poll::Ready when the factory is able to create more services. Read moresource§fn make_service(
&mut self,
target: Target,
) -> <M as MakeService<Target, Request>>::Future
fn make_service( &mut self, target: Target, ) -> <M as MakeService<Target, Request>>::Future
Available on crate feature
make only.Create and return a new service value asynchronously.
source§fn into_service(self) -> IntoService<Self, Request>where
Self: Sized,
fn into_service(self) -> IntoService<Self, Request>where
Self: Sized,
Available on crate feature
make only.source§fn as_service(&mut self) -> AsService<'_, Self, Request>where
Self: Sized,
fn as_service(&mut self) -> AsService<'_, Self, Request>where
Self: Sized,
Available on crate feature
make only.source§impl<T, Request> ServiceExt<Request> for T
impl<T, Request> ServiceExt<Request> for T
source§fn ready(&mut self) -> Ready<'_, Self, Request> ⓘwhere
Self: Sized,
fn ready(&mut self) -> Ready<'_, Self, Request> ⓘwhere
Self: Sized,
Available on crate feature
util only.Yields a mutable reference to the service when it is ready to accept a request.
source§fn ready_and(&mut self) -> ReadyAnd<'_, Self, Request>where
Self: Sized,
fn ready_and(&mut self) -> ReadyAnd<'_, Self, Request>where
Self: Sized,
👎Deprecated since 0.4.6: please use the
ServiceExt::ready method insteadAvailable on crate feature
util only.Yields a mutable reference to the service when it is ready to accept a request.
source§fn ready_oneshot(self) -> ReadyOneshot<Self, Request> ⓘwhere
Self: Sized,
fn ready_oneshot(self) -> ReadyOneshot<Self, Request> ⓘwhere
Self: Sized,
Available on crate feature
util only.Yields the service when it is ready to accept a request.
source§fn oneshot(self, req: Request) -> Oneshot<Self, Request> ⓘwhere
Self: Sized,
fn oneshot(self, req: Request) -> Oneshot<Self, Request> ⓘwhere
Self: Sized,
Available on crate feature
util only.Consume this
Service, calling with the providing request once it is ready.source§fn and_then<F>(self, f: F) -> AndThen<Self, F>
fn and_then<F>(self, f: F) -> AndThen<Self, F>
Available on crate feature
util only.Executes a new future after this service’s future resolves. This does
not alter the behaviour of the
poll_ready method. Read moresource§fn map_response<F, Response>(self, f: F) -> MapResponse<Self, F>
fn map_response<F, Response>(self, f: F) -> MapResponse<Self, F>
Available on crate feature
util only.Maps this service’s response value to a different value. This does not
alter the behaviour of the
poll_ready method. Read moresource§fn map_err<F, Error>(self, f: F) -> MapErr<Self, F>
fn map_err<F, Error>(self, f: F) -> MapErr<Self, F>
Available on crate feature
util only.Maps this service’s error value to a different value. This does not
alter the behaviour of the
poll_ready method. Read moresource§fn map_result<F, Response, Error>(self, f: F) -> MapResult<Self, F>
fn map_result<F, Response, Error>(self, f: F) -> MapResult<Self, F>
Available on crate feature
util only.Maps this service’s result type (
Result<Self::Response, Self::Error>)
to a different value, regardless of whether the future succeeds or
fails. Read moresource§fn map_request<F, NewRequest>(self, f: F) -> MapRequest<Self, F>
fn map_request<F, NewRequest>(self, f: F) -> MapRequest<Self, F>
Available on crate feature
util only.Composes a function in front of the service. Read more
source§fn filter<F, NewRequest>(self, filter: F) -> Filter<Self, F>
fn filter<F, NewRequest>(self, filter: F) -> Filter<Self, F>
Available on crate features
util and filter only.source§fn filter_async<F, NewRequest>(self, filter: F) -> AsyncFilter<Self, F>where
Self: Sized,
F: AsyncPredicate<NewRequest>,
fn filter_async<F, NewRequest>(self, filter: F) -> AsyncFilter<Self, F>where
Self: Sized,
F: AsyncPredicate<NewRequest>,
Available on crate features
util and filter only.Composes this service with an
AsyncFilter that conditionally accepts or
rejects requests based on an [async predicate]. Read moresource§fn then<F, Response, Error, Fut>(self, f: F) -> Then<Self, F>
fn then<F, Response, Error, Fut>(self, f: F) -> Then<Self, F>
Available on crate feature
util only.Composes an asynchronous function after this service. Read more
source§fn map_future<F, Fut, Response, Error>(self, f: F) -> MapFuture<Self, F>
fn map_future<F, Fut, Response, Error>(self, f: F) -> MapFuture<Self, F>
Available on crate feature
util only.Composes a function that transforms futures produced by the service. Read more
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 280 bytes