1use thiserror::Error;
4
5#[derive(Error, Debug)]
6pub enum DataFrameError {
7 #[error("Column not found: {0}")]
8 ColumnNotFound(String),
9
10 #[error("Index out of bounds: {0} (size: {1})")]
11 IndexOutOfBounds(usize, usize),
12
13 #[error("Dimension mismatch: {0}")]
14 DimensionMismatch(String),
15
16 #[error("Invalid operation: {0}")]
17 InvalidOperation(String),
18
19 #[error("Parse error: {0}")]
20 ParseError(String),
21
22 #[error("IO error: {0}")]
23 IoError(#[from] std::io::Error),
24
25 #[error("CSV error: {0}")]
26 CsvError(#[from] csv::Error),
27
28 #[error("JSON error: {0}")]
29 JsonError(#[from] serde_json::Error),
30
31 #[cfg(feature = "parquet-support")]
32 #[error("Parquet error: {0}")]
33 ParquetError(String),
34
35 #[cfg(feature = "avro-support")]
36 #[error("Avro error: {0}")]
37 AvroError(String),
38
39 #[error("XDL error: {0}")]
40 XdlError(#[from] xdl_core::XdlError),
41
42 #[error("Other error: {0}")]
43 Other(String),
44}
45
46pub type DataFrameResult<T> = Result<T, DataFrameError>;