use std::fmt;
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum Error {
SizeMismatch {
reference: (usize, usize),
target: (usize, usize),
},
NoSuchReference { reference: usize, exposures: usize },
}
impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match *self {
Error::SizeMismatch { reference, target } => write!(
f,
"cannot align a {}x{} exposure against a {}x{} one",
reference.0, reference.1, target.0, target.1
),
Error::NoSuchReference {
reference,
exposures,
} => write!(f, "no exposure {reference} in a stack of {exposures}"),
}
}
}
impl std::error::Error for Error {}