use core::time::Duration;
#[derive(Clone, Copy, Debug)]
pub struct RequestLimit {
duration: Duration,
limit: u16,
}
impl RequestLimit {
#[inline]
pub fn new(limit: u16, duration: Duration) -> Self {
Self { duration, limit: limit.max(1) }
}
#[inline]
pub const fn unlimited() -> Self {
Self { duration: Duration::from_secs(0), limit: u16::MAX }
}
#[inline]
pub const fn duration(&self) -> &Duration {
&self.duration
}
#[inline]
pub const fn limit(&self) -> u16 {
self.limit
}
}