1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum DrizzleError {
5 #[error("Execution error: {0}")]
7 ExecutionError(String),
8
9 #[error("Prepare error: {0}")]
11 PrepareError(String),
12
13 #[error("No rows found")]
15 NotFound,
16
17 #[error("Transaction error: {0}")]
19 TransactionError(String),
20
21 #[error("Mapping error: {0}")]
23 Mapping(String),
24
25 #[error("Statement error: {0}")]
27 Statement(String),
28
29 #[error("Query error: {0}")]
31 Query(String),
32
33 #[error("Parameter conversion error: {0}")]
35 ParameterError(String),
36
37 #[error("Integer conversion error: {0}")]
39 TryFromInt(#[from] std::num::TryFromIntError),
40
41 #[error("Parse int error: {0}")]
43 ParseInt(#[from] std::num::ParseIntError),
44
45 #[error("Parse float error: {0}")]
47 ParseFloat(#[from] std::num::ParseFloatError),
48
49 #[error("Parse bool error: {0}")]
51 ParseBool(#[from] std::str::ParseBoolError),
52
53 #[error("Type conversion error: {0}")]
55 ConversionError(String),
56
57 #[error("Database error: {0}")]
59 Other(String),
60
61 #[cfg(feature = "rusqlite")]
63 #[error("Rusqlite error: {0}")]
64 Rusqlite(#[from] rusqlite::Error),
65
66 #[cfg(feature = "turso")]
68 #[error("Turso error: {0}")]
69 Turso(#[from] turso::Error),
70
71 #[cfg(feature = "libsql")]
73 #[error("LibSQL error: {0}")]
74 LibSQL(#[from] libsql::Error),
75
76 #[cfg(feature = "uuid")]
78 #[error("UUID error: {0}")]
79 UuidError(#[from] uuid::Error),
80
81 #[cfg(feature = "serde")]
83 #[error("JSON error: {0}")]
84 JsonError(#[from] serde_json::Error),
85
86 #[error("Infallible conversion error")]
88 Infallible(#[from] std::convert::Infallible),
89}
90
91pub type Result<T> = std::result::Result<T, DrizzleError>;