1pub type Result<T> = core::result::Result<T, Error>;
5
6#[derive(Debug, Clone, PartialEq, Eq, thiserror::Error)]
8#[non_exhaustive]
9pub enum Error {
10 #[error("buffer too short: need {need}, have {have} ({what})")]
12 BufferTooShort {
13 need: usize,
15 have: usize,
17 what: &'static str,
19 },
20 #[error("bad data_identifier: {0:#04X} (expected 0x20)")]
22 BadDataIdentifier(u8),
23 #[error("bad sync_byte: {0:#04X} (expected 0x0F)")]
25 BadSyncByte(u8),
26 #[error("bad end_of_PES_data_field_marker: {0:#04X} (expected 0xFF)")]
28 BadEndOfPesMarker(u8),
29 #[error("unknown segment_type: {0:#04X}")]
31 UnknownSegmentType(u8),
32 #[error("unknown data_type: {0:#04X}")]
34 UnknownDataType(u8),
35 #[error("unknown object_coding_method: {0:#02X}")]
37 UnknownObjectCodingMethod(u8),
38 #[error("non-zero stuffing byte: {0:#04X} (expected 0x00)")]
40 BadStuffingByte(u8),
41 #[error("segment too large to serialize: segment_length oversized")]
43 SegmentTooLarge,
44}