pub enum RejectLayer {
PerPeer,
PerIp,
Global,
}Expand description
Layer that triggered a rejection. Used as a log/trace field and to pick
the right per-layer Counter via RateLimitMetricsSink::rejected.
A sibling-counter split, per the convention settled in #1475 — one
unlabeled counter per layer (decdn_probe_rate_limit_rejected_{per_peer, per_ip,global}_total on the probe path, and the matching
decdn_dht_rate_limit_rejected_* trio on the DHT path — this enum is shared
by both), not a layer label. The labeled
decdn_probe_hold_unavailable_total is the one deliberate reason-split
exception.
Variants§
PerPeer
Per-peer (NodeId) bucket exhausted.
PerIp
Per-IP bucket exhausted.
Global
Global cap exhausted.
Implementations§
Trait Implementations§
Source§impl Clone for RejectLayer
impl Clone for RejectLayer
impl Copy for RejectLayer
Source§impl Debug for RejectLayer
impl Debug for RejectLayer
impl Eq for RejectLayer
Source§impl PartialEq for RejectLayer
impl PartialEq for RejectLayer
impl StructuralPartialEq for RejectLayer
Auto Trait Implementations§
impl Freeze for RejectLayer
impl RefUnwindSafe for RejectLayer
impl Send for RejectLayer
impl Sync for RejectLayer
impl Unpin for RejectLayer
impl UnsafeUnpin for RejectLayer
impl UnwindSafe for RejectLayer
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestCreates a shared type from an unshared type.