use deep_causality_rand::{
BernoulliDistributionError, NormalDistributionError, UniformDistributionError,
};
use std::fmt;
#[derive(Debug)]
pub enum UncertainError {
GraphError(String),
ConfidenceError(String),
UnsupportedTypeError(String),
BernoulliDistributionError(String),
NormalDistributionError(String),
UniformDistributionError(String),
SamplingError(String),
PresenceError(String),
}
impl fmt::Display for UncertainError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
UncertainError::GraphError(msg) => write!(f, "Graph construction error: {}", msg),
UncertainError::ConfidenceError(msg) => write!(f, "Confidence error: {}", msg),
UncertainError::UnsupportedTypeError(msg) => write!(f, "Unsupported type: {}", msg),
UncertainError::BernoulliDistributionError(msg) => {
write!(f, "Bernoulli distribution error: {}", msg)
}
UncertainError::NormalDistributionError(msg) => {
write!(f, "Normal distribution error: {}", msg)
}
UncertainError::UniformDistributionError(msg) => {
write!(f, "Uniform distribution error: {}", msg)
}
UncertainError::SamplingError(msg) => write!(f, "Sampling error: {}", msg),
UncertainError::PresenceError(msg) => write!(f, "Presence error: {}", msg),
}
}
}
impl std::error::Error for UncertainError {}
impl From<UniformDistributionError> for UncertainError {
fn from(err: UniformDistributionError) -> Self {
UncertainError::UniformDistributionError(err.to_string())
}
}
impl From<BernoulliDistributionError> for UncertainError {
fn from(err: BernoulliDistributionError) -> Self {
UncertainError::BernoulliDistributionError(err.to_string())
}
}
impl From<NormalDistributionError> for UncertainError {
fn from(err: NormalDistributionError) -> Self {
UncertainError::NormalDistributionError(err.to_string())
}
}