pub struct MultiRateLimiter { /* private fields */ }Expand description
多维度限流策略
对同一个请求应用多个限流器,只要任一限流器拒绝则拒绝。 适用于同时限制 IP 级别和用户级别的场景。
Implementations§
Source§impl MultiRateLimiter
impl MultiRateLimiter
Sourcepub fn new(limiters: Vec<Arc<dyn RateLimiter>>) -> Self
pub fn new(limiters: Vec<Arc<dyn RateLimiter>>) -> Self
创建多维度限流器
Sourcepub fn with_limiter(self, limiter: Arc<dyn RateLimiter>) -> Self
pub fn with_limiter(self, limiter: Arc<dyn RateLimiter>) -> Self
添加限流器
Sourcepub fn check_all(&self, key: &str) -> Result<RateLimitResult, RateLimitError>
pub fn check_all(&self, key: &str) -> Result<RateLimitResult, RateLimitError>
检查所有限流器,返回最严格的结果
如果任一限流器拒绝,则返回拒绝结果(取剩余最少的)。 如果全部允许,则返回剩余最少的结果。
Auto Trait Implementations§
impl !RefUnwindSafe for MultiRateLimiter
impl !UnwindSafe for MultiRateLimiter
impl Freeze for MultiRateLimiter
impl Send for MultiRateLimiter
impl Sync for MultiRateLimiter
impl Unpin for MultiRateLimiter
impl UnsafeUnpin for MultiRateLimiter
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