#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub struct Checksum(u128);
impl Checksum {
pub(crate) fn from_raw(value: u128) -> Self {
Self(value)
}
#[must_use]
pub fn into_u128(self) -> u128 {
self.0
}
pub(crate) fn check(&self, expected: Self) -> crate::sfa::Result<()> {
if self == &expected {
Ok(())
} else {
Err(crate::sfa::Error::ChecksumMismatch {
expected,
got: *self,
})
}
}
}