#[derive(PartialEq, Debug, Clone, Copy, Eq, Hash)]
pub struct NonMaxU32 {
inner: u32,
}
impl NonMaxU32 {
#[must_use]
pub const unsafe fn new_unchecked(inner: u32) -> Self {
debug_assert!(inner != u32::MAX);
Self { inner }
}
#[must_use]
pub const fn new(inner: u32) -> Option<Self> {
if inner == u32::MAX {
return None;
}
unsafe { Some(Self::new_unchecked(inner)) }
}
#[must_use]
pub const fn get(&self) -> u32 {
self.inner
}
}