#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("dimension mismatch: {a:?} vs {b:?}")]
DimensionMismatch {
a: (u32, u32),
b: (u32, u32),
},
#[error("image too small: {0}x{1}, minimum is {2}x{2}")]
ImageTooSmall(u32, u32, u32),
#[error("buffer size mismatch: expected {expected} samples, got {actual}")]
BufferSize {
expected: usize,
actual: usize,
},
#[error("ssimulacra2 computation failed")]
Ssimulacra2Failed,
#[error("butteraugli computation failed")]
ButteraugliFailed,
}
pub type Result<T> = std::result::Result<T, Error>;