Trait orml_traits::rate_limit::RateLimiter
source · pub trait RateLimiter {
type RateLimiterId: Parameter + Member + Copy;
// Required methods
fn is_whitelist(limiter_id: Self::RateLimiterId, key: impl Encode) -> bool;
fn can_consume(
limiter_id: Self::RateLimiterId,
limit_key: impl Encode,
value: u128
) -> Result<(), RateLimiterError>;
fn consume(
limiter_id: Self::RateLimiterId,
limit_key: impl Encode,
value: u128
);
// Provided method
fn try_consume(
limiter_id: Self::RateLimiterId,
limit_key: impl Encode + Clone,
value: u128,
whitelist_check: Option<impl Encode>
) -> Result<(), RateLimiterError> { ... }
}
Expand description
Rate Limiter
Required Associated Types§
sourcetype RateLimiterId: Parameter + Member + Copy
type RateLimiterId: Parameter + Member + Copy
The type for the rate limiter.
Required Methods§
sourcefn is_whitelist(limiter_id: Self::RateLimiterId, key: impl Encode) -> bool
fn is_whitelist(limiter_id: Self::RateLimiterId, key: impl Encode) -> bool
Check whether the rate limiter of can be bypassed according to the
key
.
sourcefn can_consume(
limiter_id: Self::RateLimiterId,
limit_key: impl Encode,
value: u128
) -> Result<(), RateLimiterError>
fn can_consume( limiter_id: Self::RateLimiterId, limit_key: impl Encode, value: u128 ) -> Result<(), RateLimiterError>
Check whether the value
can be consumed under the limit of
limit_key
.
sourcefn consume(limiter_id: Self::RateLimiterId, limit_key: impl Encode, value: u128)
fn consume(limiter_id: Self::RateLimiterId, limit_key: impl Encode, value: u128)
The handler function to consume quota.
Provided Methods§
sourcefn try_consume(
limiter_id: Self::RateLimiterId,
limit_key: impl Encode + Clone,
value: u128,
whitelist_check: Option<impl Encode>
) -> Result<(), RateLimiterError>
fn try_consume( limiter_id: Self::RateLimiterId, limit_key: impl Encode + Clone, value: u128, whitelist_check: Option<impl Encode> ) -> Result<(), RateLimiterError>
Try consume quota.
Object Safety§
This trait is not object safe.