pub struct GlobalConcurrencyLimitLayer { /* private fields */ }
Expand description
Enforces a limit on the concurrent number of requests the underlying service can handle.
Unlike ConcurrencyLimitLayer
, which enforces a per-service concurrency
limit, this layer accepts a owned semaphore (Arc<Semaphore>
) which can be
shared across multiple services.
Cloning this layer will not create a new semaphore.
Implementations§
Source§impl GlobalConcurrencyLimitLayer
impl GlobalConcurrencyLimitLayer
Sourcepub fn new(max: usize) -> GlobalConcurrencyLimitLayer
pub fn new(max: usize) -> GlobalConcurrencyLimitLayer
Create a new GlobalConcurrencyLimitLayer
.
Sourcepub fn with_semaphore(semaphore: Arc<Semaphore>) -> GlobalConcurrencyLimitLayer
pub fn with_semaphore(semaphore: Arc<Semaphore>) -> GlobalConcurrencyLimitLayer
Create a new GlobalConcurrencyLimitLayer
from a Arc<Semaphore>
Trait Implementations§
Source§impl Clone for GlobalConcurrencyLimitLayer
impl Clone for GlobalConcurrencyLimitLayer
Source§fn clone(&self) -> GlobalConcurrencyLimitLayer
fn clone(&self) -> GlobalConcurrencyLimitLayer
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for GlobalConcurrencyLimitLayer
impl Debug for GlobalConcurrencyLimitLayer
Source§impl<S> Layer<S> for GlobalConcurrencyLimitLayer
impl<S> Layer<S> for GlobalConcurrencyLimitLayer
Source§type Service = ConcurrencyLimit<S>
type Service = ConcurrencyLimit<S>
The wrapped service
Auto Trait Implementations§
impl Freeze for GlobalConcurrencyLimitLayer
impl !RefUnwindSafe for GlobalConcurrencyLimitLayer
impl Send for GlobalConcurrencyLimitLayer
impl Sync for GlobalConcurrencyLimitLayer
impl Unpin for GlobalConcurrencyLimitLayer
impl !UnwindSafe for GlobalConcurrencyLimitLayer
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more