pub type Result<T> = core::result::Result<T, Error>;
#[derive(Debug, Clone, PartialEq, Eq, thiserror::Error)]
#[non_exhaustive]
pub enum Error {
#[error(transparent)]
BufferTooShort(#[from] broadcast_common::error::BufferTooShort),
#[error(transparent)]
OutputBufferTooSmall(#[from] broadcast_common::error::OutputBufferTooSmall),
#[error(transparent)]
InvalidSync(#[from] broadcast_common::error::InvalidSync),
#[error("bad timestamp marker bit in {0}")]
BadTimestampMarker(&'static str),
#[error("bad timestamp prefix in {0}")]
BadTimestampPrefix(&'static str),
#[error("optional_fields too large to serialize: {0} bytes (max 255)")]
OptionalFieldsTooLarge(usize),
#[error(transparent)]
FieldOverflow(#[from] broadcast_common::len::FieldOverflow),
#[error("PES header marker bits are not '10'")]
BadHeaderMarker,
#[error("forbidden PTS_DTS_flags combination: DTS without PTS")]
ForbiddenPtsDtsFlags,
}