pub struct GcraPolicy { /* private fields */ }Expand description
A generic-cell-rate-algorithm policy.
quota units are replenished uniformly during period, while
burst_capacity controls the maximum immediately available allowance. This
avoids fixed-window boundary bursts while retaining constant-size state per
storage key.
Implementations§
Source§impl GcraPolicy
impl GcraPolicy
Sourcepub fn new(
id: PolicyId,
scope: ScopeId,
quota: u64,
period: Duration,
burst_capacity: u64,
) -> Result<Self, GcraPolicyError>
pub fn new( id: PolicyId, scope: ScopeId, quota: u64, period: Duration, burst_capacity: u64, ) -> Result<Self, GcraPolicyError>
Sourcepub const fn with_quota_mode(self, quota_mode: QuotaMode) -> Self
pub const fn with_quota_mode(self, quota_mode: QuotaMode) -> Self
Returns this policy with the requested quota deployment mode.
Sourcepub const fn period_millis(&self) -> u64
pub const fn period_millis(&self) -> u64
Returns the replenishment period as exact whole milliseconds.
Sourcepub const fn burst_capacity(&self) -> u64
pub const fn burst_capacity(&self) -> u64
Returns the maximum immediately available allowance.
Sourcepub const fn fingerprint(&self) -> PolicyFingerprint
pub const fn fingerprint(&self) -> PolicyFingerprint
Returns the deterministic configuration fingerprint.
Sourcepub const fn quota_mode(&self) -> QuotaMode
pub const fn quota_mode(&self) -> QuotaMode
Returns whether quota exhaustion is enforced or shadowed.
Trait Implementations§
Source§impl Clone for GcraPolicy
impl Clone for GcraPolicy
Source§fn clone(&self) -> GcraPolicy
fn clone(&self) -> GcraPolicy
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 GcraPolicy
impl Debug for GcraPolicy
Source§impl<'de> Deserialize<'de> for GcraPolicy
Available on crate feature serde only.
impl<'de> Deserialize<'de> for GcraPolicy
Available on crate feature
serde only.Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for GcraPolicy
Source§impl Hash for GcraPolicy
impl Hash for GcraPolicy
Source§impl PartialEq for GcraPolicy
impl PartialEq for GcraPolicy
Source§impl RateLimitPolicy for GcraPolicy
impl RateLimitPolicy for GcraPolicy
Source§fn quota(&self) -> u64
fn quota(&self) -> u64
Returns the quota replenished during
Self::quota_period.Source§fn quota_period(&self) -> Duration
fn quota_period(&self) -> Duration
Returns the period during which
Self::quota is replenished.Source§fn capacity(&self) -> u64
fn capacity(&self) -> u64
Returns the largest single cost and maximum immediately available
allowance supported by this policy.
Source§fn fingerprint(&self) -> PolicyFingerprint
fn fingerprint(&self) -> PolicyFingerprint
Returns the deterministic storage-key fingerprint.
Source§fn quota_mode(&self) -> QuotaMode
fn quota_mode(&self) -> QuotaMode
Returns whether quota exhaustion is enforced or shadowed.
Source§impl Serialize for GcraPolicy
Available on crate feature serde only.
impl Serialize for GcraPolicy
Available on crate feature
serde only.impl StructuralPartialEq for GcraPolicy
Auto Trait Implementations§
impl Freeze for GcraPolicy
impl RefUnwindSafe for GcraPolicy
impl Send for GcraPolicy
impl Sync for GcraPolicy
impl Unpin for GcraPolicy
impl UnsafeUnpin for GcraPolicy
impl UnwindSafe for GcraPolicy
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