use thiserror::Error;
#[derive(Error, Debug)]
pub enum FFTError {
#[error("Computation error: {0}")]
ComputationError(String),
#[error("Dimension mismatch error: {0}")]
DimensionError(String),
#[error("Value error: {0}")]
ValueError(String),
#[error("Not implemented: {0}")]
NotImplementedError(String),
#[error("I/O error: {0}")]
IOError(String),
#[error("Backend error: {0}")]
BackendError(String),
#[error("Plan creation error: {0}")]
PlanError(String),
#[error("Communication error: {0}")]
CommunicationError(String),
#[error("Memory error: {0}")]
MemoryError(String),
#[error("Internal error: {0}")]
InternalError(String),
}
pub type FFTResult<T> = Result<T, FFTError>;