add day time unit for ratelimits

PR #851 added ratelimit examples using unit: day but the Rust
TimeUnit enum only had second/minute/hour. Adds Day variant and
maps it to per-hour quota (tokens/24).
This commit is contained in:
Adil Hafeez 2026-03-30 13:38:48 -07:00
parent d96a2b32f7
commit 21d4806304
2 changed files with 6 additions and 0 deletions

View file

@ -290,6 +290,8 @@ pub enum TimeUnit {
Minute, Minute,
#[serde(rename = "hour")] #[serde(rename = "hour")]
Hour, Hour,
#[serde(rename = "day")]
Day,
} }
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)]

View file

@ -150,6 +150,10 @@ fn get_quota(limit: Limit) -> Quota {
TimeUnit::Second => Quota::per_second(tokens), TimeUnit::Second => Quota::per_second(tokens),
TimeUnit::Minute => Quota::per_minute(tokens), TimeUnit::Minute => Quota::per_minute(tokens),
TimeUnit::Hour => Quota::per_hour(tokens), TimeUnit::Hour => Quota::per_hour(tokens),
TimeUnit::Day => {
let per_hour = limit.tokens.saturating_div(24).max(1);
Quota::per_hour(NonZero::new(per_hour).expect("per_hour must be positive"))
}
} }
} }