#[derive(Debug, thiserror::Error)]
pub enum ImageError {
#[error("image dimensions must be > 0: got {width}x{height}")]
ZeroDimension {
width: usize,
height: usize,
},
#[error("kernel dimensions must be odd and > 0: got {kw}x{kh}")]
InvalidKernelSize {
kw: usize,
kh: usize,
},
#[error("buffer length {got} does not match {width}x{height} = {expected}")]
BufferLengthMismatch {
expected: usize,
got: usize,
width: usize,
height: usize,
},
#[error("thresholds must be 0 ≤ low ≤ high ≤ 1: got low={low}, high={high}")]
InvalidThresholds {
low: f32,
high: f32,
},
#[error("data length {got} does not match expected {expected}")]
DimensionMismatch {
expected: usize,
got: usize,
},
#[error("channel {channel} out of range (max {max})")]
InvalidChannel {
channel: usize,
max: usize,
},
}