use crate::error::Error;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct U24(usize);
impl U24 {
pub const MAX: usize = (1 << 24) - 1;
pub const fn new(value: usize) -> Result<Self, Error> {
if value > Self::MAX {
return Err(Error::LengthOverflow {
max: Self::MAX,
actual: value,
});
}
Ok(Self(value))
}
pub const fn to_be_bytes(self) -> [u8; 3] {
[(self.0 >> 16) as u8, (self.0 >> 8) as u8, self.0 as u8]
}
}