Struct rate_limiter::rate_limiter::RateLimiter [−][src]
pub struct RateLimiter<T> { /* fields omitted */ }
Implementations
pub fn rate_limit(
&mut self,
key: String,
burst: i64,
count: i64,
seconds: i64,
quantity: i64
) -> Result<RateLimitResult, RateError>
pub fn rate_limit(
&mut self,
key: String,
burst: i64,
count: i64,
seconds: i64,
quantity: i64
) -> Result<RateLimitResult, RateError>
Rate limit
Examples
use rate_limiter::rate_limiter::Store; use rate_limiter::RateLimiter; use rate_limiter::rate_limiter::to_second; let mut store = Store::new(); let mut rate_limiter = RateLimiter::new(&mut store); let rs = rate_limiter.rate_limit("foo".to_string(),10,1,1,1).unwrap(); assert_eq!(rs.allowed, true); assert_eq!(rs.remaining, 10); assert_eq!(rs.limit, 11); assert_eq!(to_second(rs.retry_after), -1); assert_eq!(to_second(rs.reset_after), 1);
Auto Trait Implementations
impl<T> RefUnwindSafe for RateLimiter<T> where
T: RefUnwindSafe,
impl<T> Send for RateLimiter<T> where
T: Send,
impl<T> Sync for RateLimiter<T> where
T: Sync,
impl<T> Unpin for RateLimiter<T> where
T: Unpin,
impl<T> UnwindSafe for RateLimiter<T> where
T: UnwindSafe,