/// Marker trait for types that guarantee values are greater than or equal to zero.
/// Implementers must ensure all inhabited values are `>= 0`.
pub trait NonNegative {}
macro_rules! impl_non_negative {
($($ty:ty),+ $(,)?) => {
$(impl NonNegative for $ty {})+
};
}
impl_non_negative!(u8, u16, u32, u64, u128, usize);