use thiserror::Error;
#[derive(Debug, Error)]
pub enum SolverForgeError {
#[error("Configuration error: {0}")]
Config(String),
#[error("Domain model error: {0}")]
DomainModel(String),
#[error("Score calculation error: {0}")]
ScoreCalculation(String),
#[error("Solver was cancelled")]
Cancelled,
#[error("Invalid state: {0}")]
InvalidState(String),
#[error("Internal error: {0}")]
Internal(String),
}
pub type Result<T> = std::result::Result<T, SolverForgeError>;