use thiserror::Error;
#[derive(Debug, Error)]
pub enum CodecError {
#[error("Invalid bitstream: {0}")]
InvalidBitstream(String),
#[error("Unsupported feature: {0}")]
UnsupportedFeature(String),
#[error("Need more data")]
NeedMoreData,
#[error("Buffer too small: need {needed}, have {have}")]
BufferTooSmall {
needed: usize,
have: usize,
},
#[error("Invalid parameter: {0}")]
InvalidParameter(String),
#[error("Internal error: {0}")]
Internal(String),
#[error("End of stream")]
Eof,
#[error("Decoder error: {0}")]
DecoderError(String),
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("Core error: {0}")]
Core(#[from] oximedia_core::OxiError),
#[error("Invalid data: {0}")]
InvalidData(String),
}
pub type CodecResult<T> = Result<T, CodecError>;