use thiserror::Error;
#[derive(Error, Debug)]
pub enum DomainError {
#[error("problem generation failed: {0}")]
Generation(String),
#[error("evaluation failed: {0}")]
Evaluation(String),
#[error("dimension mismatch: expected {expected}, got {got}")]
DimensionMismatch { expected: usize, got: usize },
#[error("domain not found: {0}")]
DomainNotFound(String),
#[error("transfer failed from {source} to {target}: {reason}")]
TransferFailed {
source: String,
target: String,
reason: String,
},
#[error("kernel not initialized: {0}")]
KernelNotInitialized(String),
#[error("invalid config: {0}")]
InvalidConfig(String),
}