use antecedent_data::DataError;
use antecedent_graph::GraphError;
use antecedent_stats::StatsError;
use thiserror::Error;
#[derive(Clone, Debug, Error, Eq, PartialEq)]
pub enum ModelError {
#[error("model shape error: {message}")]
Shape {
message: String,
},
#[error("not a DAG: {message}")]
NotDag {
message: String,
},
#[error("missing mechanism for node {node}")]
MissingMechanism {
node: u32,
},
#[error("unsupported: {message}")]
Unsupported {
message: String,
},
#[error("numerical error: {message}")]
Numerical {
message: String,
},
#[error(transparent)]
Graph(#[from] GraphError),
#[error(transparent)]
Data(#[from] DataError),
#[error(transparent)]
Stats(#[from] StatsError),
}