Skip to main content

datafusion_quality/
error.rs

1use snafu::Snafu;
2
3#[derive(Debug, Snafu)]
4#[snafu(visibility(pub))]
5pub enum ValidationError {
6    #[snafu(display("DataFrame error: {}", source))]
7    DataFusion {
8        source: datafusion::error::DataFusionError,
9    },
10
11    #[snafu(display("Validation error: {}", message))]
12    Validation { message: String },
13
14    #[snafu(display("Configuration error: {}", message))]
15    Configuration { message: String },
16
17    #[snafu(display("Column not found: {}", column_name))]
18    ColumnNotFound { column_name: String },
19
20    #[snafu(display("Type mismatch: {}", message))]
21    TypeMismatch { message: String },
22
23    #[snafu(display("Column nullable: {}, expected: {}", column_name, expected))]
24    ColumnNullabilityMismatch { column_name: String, expected: bool },
25
26    #[snafu(display("Schema error: {}", message))]
27    Schema { message: String },
28
29    #[snafu(display("Column error: {}", message))]
30    Column { message: String },
31}
32
33impl From<datafusion::error::DataFusionError> for ValidationError {
34    fn from(source: datafusion::error::DataFusionError) -> Self {
35        Self::DataFusion { source }
36    }
37}