use thiserror::Error;
#[derive(Debug, Error)]
pub enum MorphError {
#[error("core error: {0}")]
Core(#[from] crate::core::Error),
#[error("invalid structuring element: {0}")]
InvalidSel(String),
#[error("unsupported depth: expected {expected}, got {actual}")]
UnsupportedDepth { expected: &'static str, actual: u32 },
#[error("invalid parameters: {0}")]
InvalidParameters(String),
#[error("invalid sequence: {0}")]
InvalidSequence(String),
#[error("unsupported operation: {0}")]
UnsupportedOperation(String),
}
pub type MorphResult<T> = Result<T, MorphError>;