Skip to main content

sqlcx_core/
error.rs

1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum SqlcxError {
5    #[error("config file not found: {0}")]
6    ConfigNotFound(String),
7
8    #[error("invalid config: {0}")]
9    ConfigInvalid(String),
10
11    #[error("SQL parse error in {file}: {message}")]
12    ParseError { file: String, message: String },
13
14    #[error("unknown column type: {0}")]
15    UnknownType(String),
16
17    #[error("missing query annotation in {file}")]
18    MissingAnnotation { file: String },
19
20    #[error("unknown parser: {0}")]
21    UnknownParser(String),
22
23    #[error("unknown language: {0}")]
24    UnknownLanguage(String),
25
26    #[error("unknown schema generator: {0}")]
27    UnknownSchema(String),
28
29    #[error("unknown driver generator: {0}")]
30    UnknownDriver(String),
31
32    #[error("IO error: {0}")]
33    Io(#[from] std::io::Error),
34
35    #[error("JSON error: {0}")]
36    Json(#[from] serde_json::Error),
37
38    #[error("TOML parse error: {0}")]
39    Toml(#[from] toml::de::Error),
40
41    #[error("migration error: {0}")]
42    Migrate(String),
43}
44
45pub type Result<T> = std::result::Result<T, SqlcxError>;