use thiserror::Error;
#[derive(Debug, Error)]
pub enum BlpError {
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("invalid BLP magic number")]
InvalidMagic,
#[error("invalid BLP2 format version: expected 1, got {0}")]
InvalidFormatVersion(u32),
#[error("unsupported color encoding: {0}")]
UnsupportedEncoding(u8),
#[error("no mipmaps present")]
NoMipmaps,
#[error("mipmap data out of bounds")]
OutOfBounds,
#[error("mipmap data too short for declared image dimensions")]
DataTooShort,
#[error("image dimensions too large")]
ImageTooLarge,
#[error("JPEG decode error: {0}")]
JpegDecode(String),
}