pub struct UnifiedRateLimiter { /* private fields */ }Expand description
Unified rate limiter for WebSocket requests
Provides configurable rate limiting with sliding window approach to prevent API violations across all exchanges.
Implementations§
Source§impl UnifiedRateLimiter
impl UnifiedRateLimiter
Sourcepub const fn new(config: RateLimitConfig, clock: Clock) -> Self
pub const fn new(config: RateLimitConfig, clock: Clock) -> Self
Create a new rate limiter with the given configuration
Sourcepub fn can_make_requests(&mut self, count: usize) -> bool
pub fn can_make_requests(&mut self, count: usize) -> bool
Check if the given number of requests can be made
Sourcepub fn record_requests(&mut self, count: usize)
pub fn record_requests(&mut self, count: usize)
Record the given number of requests
Sourcepub async fn acquire_permits(&mut self, count: usize) -> Result<()>
pub async fn acquire_permits(&mut self, count: usize) -> Result<()>
Wait until requests can be made (for async rate limiting)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for UnifiedRateLimiter
impl RefUnwindSafe for UnifiedRateLimiter
impl Send for UnifiedRateLimiter
impl Sync for UnifiedRateLimiter
impl Unpin for UnifiedRateLimiter
impl UnwindSafe for UnifiedRateLimiter
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