pub struct DistributedRateLimit {
pub name: &'static str,
pub max: u32,
pub window_secs: u32,
pub policy: FailurePolicy,
}Expand description
Cluster-wide limiter. Build as a static and call from handlers:
ⓘ
static LOGIN_RATE: DistributedRateLimit =
DistributedRateLimit::new("login", 10, 60).fail_closed();
// in the handler:
LOGIN_RATE.check(&ctx).await?;Fields§
§name: &'static str§max: u32§window_secs: u32§policy: FailurePolicyImplementations§
Auto Trait Implementations§
impl Freeze for DistributedRateLimit
impl RefUnwindSafe for DistributedRateLimit
impl Send for DistributedRateLimit
impl Sync for DistributedRateLimit
impl Unpin for DistributedRateLimit
impl UnsafeUnpin for DistributedRateLimit
impl UnwindSafe for DistributedRateLimit
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> 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::Request