1use thiserror::Error;
2
3pub type Result<T> = std::result::Result<T, BifrostError>;
4
5#[derive(Debug, Error)]
6pub enum BifrostError {
7 #[error("IO error: {0}")]
8 Io(#[from] std::io::Error),
9
10 #[error("YAML parse error: {0}")]
11 Yaml(#[from] serde_yaml::Error),
12
13 #[error("JSON error: {0}")]
14 Json(#[from] serde_json::Error),
15
16 #[error("RON parse error: {0}")]
17 RonParse(#[from] ron::error::SpannedError),
18
19 #[error("RON serialize error: {0}")]
20 RonSer(#[from] ron::Error),
21
22 #[error("Arrow error: {0}")]
23 Arrow(#[from] arrow::error::ArrowError),
24
25 #[error("FalkorDB error: {0}")]
26 Falkor(#[from] graphar_falkordb::FalkorError),
27
28 #[error("Valkey error: {0}")]
29 Valkey(#[from] redis::RedisError),
30
31 #[error("Column '{0}' not found in table batch")]
32 ColumnNotFound(String),
33
34 #[error("transform produces two output columns named '{0}' (endpoint/property name collision)")]
35 DuplicateOutputColumn(String),
36
37 #[error("Custom transform '{0}' is not registered — call TransformRegistry::register first")]
38 TransformNotRegistered(String),
39
40 #[error("Table '{0}' has an empty pipeline")]
41 EmptyPipeline(String),
42
43 #[error("Source error: {0}")]
44 Source(String),
45
46 #[error("full reload required: {0}")]
51 FullReloadRequired(String),
52
53 #[error("{0}")]
54 Other(String),
55}