use dvb_common::{bcd, crc32_mpeg2};
fn main() {
let payload = [0xDE, 0xAD, 0xBE, 0xEF];
let crc = crc32_mpeg2::compute(&payload);
println!("CRC-32/MPEG-2 of {payload:02X?} = {crc:#010X}");
let mut framed = payload.to_vec();
framed.extend_from_slice(&crc.to_be_bytes());
assert_eq!(
crc32_mpeg2::compute(&framed),
0,
"CRC over data+CRC is zero"
);
println!(
"verify (data+CRC) = {:#010X} (0 ⇒ intact)",
crc32_mpeg2::compute(&framed)
);
let byte = bcd::to_bcd_byte(42).expect("0..=99 fits one BCD byte");
println!("42 as BCD = {byte:#04X}");
assert_eq!(bcd::from_bcd_byte(byte), Some(42));
}