gluesql_core/
result.rs

1use {serde::Serialize, std::fmt::Debug, thiserror::Error as ThisError};
2
3pub use crate::{
4    ast_builder::AstBuilderError,
5    data::{
6        IntervalError, KeyError, RowError, SchemaParseError, StringExtError, TableError, ValueError,
7    },
8    executor::{
9        AlterError, DeleteError, EvaluateError, ExecuteError, FetchError, InsertError, SelectError,
10        SortError, UpdateError, ValidateError,
11    },
12    plan::PlanError,
13    row_conversion::RowConversionError,
14    store::{AlterTableError, IndexError},
15    translate::TranslateError,
16};
17
18#[derive(ThisError, Serialize, Debug, PartialEq)]
19pub enum Error {
20    #[error("storage: {0}")]
21    StorageMsg(String),
22
23    #[error("parser: {0}")]
24    Parser(String),
25
26    #[error("translate: {0}")]
27    Translate(#[from] TranslateError),
28
29    #[error("ast-builder: {0}")]
30    AstBuilder(#[from] AstBuilderError),
31
32    #[error("alter-table: {0}")]
33    AlterTable(#[from] AlterTableError),
34    #[error("index: {0}")]
35    Index(#[from] IndexError),
36    #[error("execute: {0}")]
37    Execute(#[from] ExecuteError),
38    #[error("alter: {0}")]
39    Alter(Box<AlterError>),
40    #[error("fetch: {0}")]
41    Fetch(#[from] FetchError),
42    #[error("select: {0}")]
43    Select(#[from] SelectError),
44    #[error("evaluate: {0}")]
45    Evaluate(#[from] EvaluateError),
46    #[error("sort: {0}")]
47    Sort(#[from] SortError),
48    #[error("insert: {0}")]
49    Insert(#[from] InsertError),
50    #[error("update: {0}")]
51    Delete(#[from] DeleteError),
52    #[error("delete: {0}")]
53    Update(#[from] UpdateError),
54    #[error("table: {0}")]
55    Table(#[from] TableError),
56    #[error("validate: {0}")]
57    Validate(#[from] ValidateError),
58    #[error("row: {0}")]
59    Row(#[from] RowError),
60    #[error("key: {0}")]
61    Key(#[from] KeyError),
62    #[error("value: {0}")]
63    Value(Box<ValueError>),
64    #[error("interval: {0}")]
65    Interval(#[from] IntervalError),
66    #[error("string-ext: {0}")]
67    StringExt(#[from] StringExtError),
68    #[error("plan: {0}")]
69    Plan(#[from] PlanError),
70    #[error("schema-parse: {0}")]
71    Schema(#[from] SchemaParseError),
72
73    #[error("row-conversion: {0}")]
74    RowConversion(#[from] RowConversionError),
75}
76
77pub type Result<T, E = Error> = std::result::Result<T, E>;
78
79impl From<AlterError> for Error {
80    fn from(e: AlterError) -> Error {
81        Error::Alter(Box::new(e))
82    }
83}
84
85impl From<ValueError> for Error {
86    fn from(e: ValueError) -> Error {
87        Error::Value(Box::new(e))
88    }
89}