pub(crate) const DEFAULT_LIMIT: usize = 50;
pub(crate) const MAX_LIMIT: usize = 200;
pub(crate) const AGGREGATION_SCAN_LIMIT: usize = 10_000;
pub(crate) fn clamp_limit(limit: Option<usize>) -> usize {
limit.unwrap_or(DEFAULT_LIMIT).min(MAX_LIMIT)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn clamp_limit_defaults_when_absent() {
assert_eq!(clamp_limit(None), DEFAULT_LIMIT);
}
#[test]
fn clamp_limit_caps_at_max() {
assert_eq!(clamp_limit(Some(MAX_LIMIT + 1_000)), MAX_LIMIT);
}
#[test]
fn clamp_limit_keeps_value_under_max() {
assert_eq!(clamp_limit(Some(7)), 7);
}
}