use thiserror::Error;
#[derive(Debug, Error)]
pub enum TsError {
#[error("truncated: {what} (have {have} bytes, need {need})")]
Truncated {
what: &'static str,
have: usize,
need: usize,
},
#[error("bad TS sync byte: 0x{0:02X} (want 0x47)")]
BadSyncByte(u8),
#[error("PSI section length {claimed} > available {have}")]
SectionLengthOverrun { claimed: usize, have: usize },
#[error("PSI CRC mismatch: header CRC=0x{header:08X} computed=0x{computed:08X}")]
PsiCrcMismatch { header: u32, computed: u32 },
#[error("bad PES start code: {0:02X?}")]
BadPesStartCode([u8; 3]),
#[error("{0}")]
Unsupported(&'static str),
}