Skip to main content

size_limit/range_limit/limits/
max_limit.rs

1use crate::{
2    range_limit::{RangeBound, SizeStatus},
3    RangeBoundLimit,
4};
5
6#[derive(Default)]
7pub struct MaxLimit<const L: usize>;
8
9impl<const L: usize> RangeBound for MaxLimit<L> {
10    fn match_range(input: usize) -> crate::range_limit::SizeStatus {
11        if input < L {
12            SizeStatus::Ok
13        } else {
14            SizeStatus::TooLarge(L)
15        }
16    }
17}
18
19impl<const L: usize> std::fmt::Debug for MaxLimit<L> {
20    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
21        f.debug_struct("MaxLimit").field("max-bound", &L).finish()
22    }
23}
24
25pub type MaxRangeLimit<T, const MAX: usize> = RangeBoundLimit<T, MaxLimit<MAX>>;