deep_causality/errors/
model_build_error.rs1use crate::{ModelGenerativeError, ModelValidationError};
6use std::error::Error;
7use std::fmt;
8use std::fmt::{Display, Formatter};
9
10#[derive(Debug, Clone, Hash, Eq, PartialEq)]
11pub enum ModelBuildError {
12 GenerationFailed(ModelGenerativeError),
13 ValidationFailed(ModelValidationError),
14}
15
16impl Error for ModelBuildError {
17 fn source(&self) -> Option<&(dyn Error + 'static)> {
18 match self {
19 ModelBuildError::GenerationFailed(e) => Some(e),
20 ModelBuildError::ValidationFailed(e) => Some(e),
21 }
22 }
23}
24
25impl Display for ModelBuildError {
26 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
27 match self {
28 ModelBuildError::GenerationFailed(e) => {
29 write!(f, "The generation process failed: {e}")
30 }
31 ModelBuildError::ValidationFailed(e) => {
32 write!(
33 f,
34 "The generative output was invalid for model construction: {e}"
35 )
36 }
37 }
38 }
39}
40
41impl From<ModelGenerativeError> for ModelBuildError {
42 fn from(value: ModelGenerativeError) -> Self {
43 ModelBuildError::GenerationFailed(value)
44 }
45}
46
47impl From<ModelValidationError> for ModelBuildError {
48 fn from(value: ModelValidationError) -> Self {
49 ModelBuildError::ValidationFailed(value)
50 }
51}