Skip to main content

ps_ecc/long/header/methods/
overlap_factor.rs

1use crate::long::LongEccHeader;
2
3use super::super::OverlapFactor;
4
5impl LongEccHeader {
6    /// Returns the overlap factor: the approximate number of codewords covering each byte.
7    #[inline]
8    #[must_use]
9    pub const fn overlap_factor(&self) -> OverlapFactor {
10        OverlapFactor::from_u8(self.parity)
11    }
12}
13
14#[cfg(test)]
15mod tests {
16    use crate::long::{LongEccHeader, OverlapFactor};
17
18    type TestError = Box<dyn std::error::Error>;
19
20    #[test]
21    fn test_overlap_factor_roundtrips_through_header() -> Result<(), TestError> {
22        for factor in [
23            OverlapFactor::Simple,
24            OverlapFactor::Double,
25            OverlapFactor::Triple,
26            OverlapFactor::Quadruple,
27        ] {
28            let header = LongEccHeader::new(2, factor, 86, 50, 0)?;
29
30            assert_eq!(header.overlap_factor(), factor);
31        }
32
33        Ok(())
34    }
35}