Skip to main content

ps_ecc/long/header/methods/
checksum.rs

1use crate::long::LongEccHeader;
2
3impl LongEccHeader {
4    /// Returns the XXH64 checksum of the message and parity bytes.
5    #[inline]
6    #[must_use]
7    pub const fn checksum(&self) -> u64 {
8        self.checksum
9    }
10}
11
12#[cfg(test)]
13mod tests {
14    use crate::long::{LongEccHeader, OverlapFactor};
15
16    type TestError = Box<dyn std::error::Error>;
17
18    #[test]
19    fn test_checksum_returns_constructor_value() -> Result<(), TestError> {
20        let header = LongEccHeader::new(2, OverlapFactor::Simple, 86, 50, 0xDEAD_BEEF_CAFE_BABE)?;
21
22        assert_eq!(header.checksum(), 0xDEAD_BEEF_CAFE_BABE);
23
24        Ok(())
25    }
26
27    #[test]
28    fn test_checksum_maximum_value() -> Result<(), TestError> {
29        let header = LongEccHeader::new(2, OverlapFactor::Simple, 86, 50, u64::MAX)?;
30
31        assert_eq!(header.checksum(), u64::MAX);
32
33        Ok(())
34    }
35}