#![forbid(unsafe_code)]
#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum Error {
#[error("bitrate {0} kbps has no Layer III bitrate index for this MPEG version")]
UnsupportedBitrate(u16),
#[error("sample rate {0} has no sampling_rate_index for this MPEG version")]
UnsupportedSampleRate(u32),
#[error(
"frame body length {actual} does not match the expected {expected} bytes for this header"
)]
FrameBodyLengthMismatch {
expected: usize,
actual: usize,
},
#[error("bad MPEG audio frame sync or reserved header field")]
BadSyncOrReservedField,
#[error("unsupported layer (only Layer III is implemented)")]
UnsupportedLayer,
}