pub struct InRange<const MIN: i64, const MAX: i64>;Expand description
Accepts integers within the inclusive range MIN..=MAX.
Implemented for the integer types that convert losslessly to i64
(i8/i16/i32/i64, u8/u16/u32). The bounds are i64 const
generics, so the rule covers any range expressible in an i64.
§Examples
use type_lib::rules::InRange;
use type_lib::Validator;
// A percentage: 0 to 100 inclusive.
assert!(InRange::<0, 100>::validate(&50_u8).is_ok());
assert!(InRange::<0, 100>::validate(&150_i32).is_err());
// Ranges may be negative.
assert!(InRange::<-10, 10>::validate(&-5_i16).is_ok());Trait Implementations§
Auto Trait Implementations§
impl<const MIN: i64, const MAX: i64> Freeze for InRange<MIN, MAX>
impl<const MIN: i64, const MAX: i64> RefUnwindSafe for InRange<MIN, MAX>
impl<const MIN: i64, const MAX: i64> Send for InRange<MIN, MAX>
impl<const MIN: i64, const MAX: i64> Sync for InRange<MIN, MAX>
impl<const MIN: i64, const MAX: i64> Unpin for InRange<MIN, MAX>
impl<const MIN: i64, const MAX: i64> UnsafeUnpin for InRange<MIN, MAX>
impl<const MIN: i64, const MAX: i64> UnwindSafe for InRange<MIN, MAX>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more