use thiserror::Error;
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Error, Debug)]
pub enum Error {
#[error("Invalid parameter: {message}")]
InvalidParameter {
message: String
},
#[error("Invalid data: {message}")]
InvalidData {
message: String
},
#[error("Convergence failure: {message}")]
ConvergenceFailure {
message: String
},
#[error("Initialization failure: {message}")]
InitializationFailure {
message: String
},
#[error("Computation error: {message}")]
ComputationError {
message: String
},
}
impl Error {
pub fn invalid_parameter(message: impl Into<String>) -> Self {
Self::InvalidParameter {
message: message.into(),
}
}
pub fn invalid_data(message: impl Into<String>) -> Self {
Self::InvalidData {
message: message.into(),
}
}
pub fn convergence_failure(message: impl Into<String>) -> Self {
Self::ConvergenceFailure {
message: message.into(),
}
}
pub fn initialization_failure(message: impl Into<String>) -> Self {
Self::InitializationFailure {
message: message.into(),
}
}
pub fn computation_error(message: impl Into<String>) -> Self {
Self::ComputationError {
message: message.into(),
}
}
}