ps_ecc/long/header/methods/
segment_length.rs1use crate::long::LongEccHeader;
2
3impl LongEccHeader {
4 #[inline]
6 #[must_use]
7 pub const fn segment_length(&self) -> u8 {
8 255 - self.parity_bytes()
9 }
10}
11
12#[cfg(test)]
13mod tests {
14 use crate::long::{LongEccHeader, OverlapFactor};
15 use crate::MAX_PARITY;
16
17 type TestError = Box<dyn std::error::Error>;
18
19 #[test]
20 fn test_segment_length_zero_parity() -> Result<(), TestError> {
21 let header = LongEccHeader::new(0, OverlapFactor::Simple, 82, 50, 0)?;
22
23 assert_eq!(header.segment_length(), 255);
24
25 Ok(())
26 }
27
28 #[test]
29 fn test_segment_length_subtracts_parity_bytes() -> Result<(), TestError> {
30 let header = LongEccHeader::new(2, OverlapFactor::Simple, 86, 50, 0)?;
31
32 assert_eq!(header.segment_length(), 251);
33
34 Ok(())
35 }
36
37 #[test]
38 fn test_segment_length_maximum_parity() -> Result<(), TestError> {
39 let header = LongEccHeader::new(MAX_PARITY, OverlapFactor::Simple, 208, 50, 0)?;
40
41 assert_eq!(header.segment_length(), 129);
42
43 Ok(())
44 }
45}