scouter_dataframe/
error.rs

1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum StorageError {
5    #[error(transparent)]
6    DecodeError(#[from] base64::DecodeError),
7
8    #[error(transparent)]
9    UtilError(#[from] scouter_types::error::UtilError),
10
11    #[error(transparent)]
12    ObjectStorageError(#[from] object_store::Error),
13
14    #[error(transparent)]
15    ParseError(#[from] url::ParseError),
16
17    #[error(transparent)]
18    Utf8Error(#[from] std::string::FromUtf8Error),
19}
20
21#[derive(Error, Debug)]
22pub enum DataFrameError {
23    #[error("Failed to read batch: {0}")]
24    ReadBatchError(String),
25
26    #[error("Failed to create batch: {0}")]
27    CreateBatchError(String),
28
29    #[error(transparent)]
30    StorageError(#[from] StorageError),
31
32    #[error("Failed to add year column")]
33    AddYearColumnError(#[source] datafusion::error::DataFusionError),
34
35    #[error("Failed to add month column")]
36    AddMonthColumnError(#[source] datafusion::error::DataFusionError),
37
38    #[error("Failed to add day column")]
39    AddDayColumnError(#[source] datafusion::error::DataFusionError),
40
41    #[error("Failed to add hour column")]
42    AddHourColumnError(#[source] datafusion::error::DataFusionError),
43
44    #[error("Failed to write to parquet")]
45    WriteParquetError(#[source] datafusion::error::DataFusionError),
46
47    #[error("Failed to infer schema")]
48    InferSchemaError(#[source] datafusion::error::DataFusionError),
49
50    #[error("Failed to create listing table")]
51    CreateListingTableError(#[source] datafusion::error::DataFusionError),
52
53    #[error("Failed to register table")]
54    RegisterTableError(#[source] datafusion::error::DataFusionError),
55
56    #[error("Downcast error: {0}")]
57    DowncastError(&'static str),
58
59    #[error("Failed to get column: {0}")]
60    GetColumnError(&'static str),
61
62    #[error("Missing field: {0}")]
63    MissingFieldError(&'static str),
64
65    #[error(transparent)]
66    DatafusionError(#[from] datafusion::error::DataFusionError),
67
68    #[error(transparent)]
69    RecordError(#[from] scouter_types::error::RecordError),
70
71    #[error(transparent)]
72    ArrowError(#[from] arrow::error::ArrowError),
73
74    #[error("Invalid record type provided")]
75    InvalidRecordTypeError,
76}