Skip to main content

datasynth_eval/behavioral_fidelity/
error.rs

1//! Errors emitted by the behavioral-fidelity module.
2
3use thiserror::Error;
4
5#[derive(Debug, Error)]
6pub enum BehavioralFidelityError {
7    #[error("io error: {0}")]
8    Io(#[from] std::io::Error),
9    #[error("parquet error: {0}")]
10    Parquet(String),
11    #[error("schema error: {0}")]
12    Schema(String),
13    #[error("computation error: {0}")]
14    Computation(String),
15    #[error("serde error: {0}")]
16    Serde(String),
17}
18
19impl From<arrow::error::ArrowError> for BehavioralFidelityError {
20    fn from(value: arrow::error::ArrowError) -> Self {
21        BehavioralFidelityError::Parquet(value.to_string())
22    }
23}
24
25impl From<parquet::errors::ParquetError> for BehavioralFidelityError {
26    fn from(value: parquet::errors::ParquetError) -> Self {
27        BehavioralFidelityError::Parquet(value.to_string())
28    }
29}
30
31impl From<serde_json::Error> for BehavioralFidelityError {
32    fn from(value: serde_json::Error) -> Self {
33        BehavioralFidelityError::Serde(value.to_string())
34    }
35}
36
37pub type BehavioralFidelityResult<T> = std::result::Result<T, BehavioralFidelityError>;