1use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum CodecError {
8 #[error("Invalid bitstream: {0}")]
10 InvalidBitstream(String),
11
12 #[error("Unsupported feature: {0}")]
14 UnsupportedFeature(String),
15
16 #[error("Need more data")]
18 NeedMoreData,
19
20 #[error("Buffer too small: need {needed}, have {have}")]
22 BufferTooSmall {
23 needed: usize,
25 have: usize,
27 },
28
29 #[error("Invalid parameter: {0}")]
31 InvalidParameter(String),
32
33 #[error("Internal error: {0}")]
35 Internal(String),
36
37 #[error("End of stream")]
39 Eof,
40
41 #[error("Decoder error: {0}")]
43 DecoderError(String),
44
45 #[error("I/O error: {0}")]
47 Io(#[from] std::io::Error),
48
49 #[error("Core error: {0}")]
51 Core(#[from] oximedia_core::OxiError),
52
53 #[error("Invalid data: {0}")]
55 InvalidData(String),
56}
57
58pub type CodecResult<T> = Result<T, CodecError>;