use thiserror::Error;
#[derive(Debug, Error)]
pub enum FilterError {
#[error("core error: {0}")]
Core(#[from] crate::core::Error),
#[error("morph error: {0}")]
Morph(#[from] crate::morph::MorphError),
#[error("transform error: {0}")]
Transform(#[from] crate::transform::TransformError),
#[error("invalid kernel: {0}")]
InvalidKernel(String),
#[error("unsupported depth: expected {expected}, got {actual}")]
UnsupportedDepth { expected: &'static str, actual: u32 },
#[error("invalid parameters: {0}")]
InvalidParameters(String),
}
pub type FilterResult<T> = Result<T, FilterError>;