pub enum Limit {
Rate(u32),
Duration(Duration),
}Expand description
Defines the type and threshold for rate limiting.
Limit specifies how rate limiting should be applied - either by counting
message occurrences or by measuring time duration between repeated messages.
§Examples
use rate_log::Limit;
use std::time::Duration;
// Allow up to 10 repeated messages before triggering rate limit
let count_limit = Limit::Rate(10);
// Allow up to 5 seconds of accumulated time between repeated messages
let time_limit = Limit::Duration(Duration::from_secs(5));Variants§
Rate(u32)
Count-based rate limiting.
Triggers when the same message is repeated more than the specified number of times. The counter resets when a different message is logged.
§Example
use rate_log::{RateLog, Limit};
let mut logger = RateLog::new(Limit::Rate(3));
// Will trigger rate limit warning after 4th identical messageDuration(Duration)
Duration-based rate limiting.
Triggers when the accumulated time between consecutive identical messages exceeds the specified duration. Time is measured between actual calls, providing real-world timing behavior.
§Example
use rate_log::{RateLog, Limit};
use std::time::Duration;
let mut logger = RateLog::new(Limit::Duration(Duration::from_millis(500)));
// Will trigger if total elapsed time between identical messages > 500msTrait Implementations§
Source§impl PartialOrd for Limit
impl PartialOrd for Limit
impl StructuralPartialEq for Limit
Auto Trait Implementations§
impl Freeze for Limit
impl RefUnwindSafe for Limit
impl Send for Limit
impl Sync for Limit
impl Unpin for Limit
impl UnwindSafe for Limit
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