#![allow(clippy::module_name_repetitions)]
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Deserialize)]
pub struct RatelimitState {
pub limit: usize,
pub remaining: usize,
pub reset: usize,
}
#[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq)]
#[serde(rename_all = "lowercase")]
pub enum RatelimitType {
Fast,
Consistent,
}
#[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct Ratelimit {
#[serde(rename = "type")]
pub ratelimit_type: RatelimitType,
pub refill_rate: usize,
pub refill_interval: usize,
pub limit: usize,
}
impl Ratelimit {
#[must_use]
pub fn new(
ratelimit_type: RatelimitType,
refill_rate: usize,
refill_interval: usize,
limit: usize,
) -> Self {
Self {
ratelimit_type,
refill_rate,
refill_interval,
limit,
}
}
}