size_limit/range_limit/limits/
max_limit.rs1use 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>>;