1use std::io::Error as IoError;
5
6use rusqlite::Error as SqlError;
7use thiserror::Error;
8
9pub type SqliteResult<T> = Result<T, SqliteError>;
10
11#[derive(Debug, Error)]
12pub enum SqliteError {
13 #[error("failed to connect to SQLite database at {path}: {source}")]
14 Connect {
15 path: String,
16 #[source]
17 source: SqlError,
18 },
19
20 #[error("failed to create directory for SQLite database at {path}: {source}")]
21 CreateDir {
22 path: String,
23 #[source]
24 source: IoError,
25 },
26
27 #[error("failed to apply pragma {name}: {source}")]
28 Pragma {
29 name: String,
30 #[source]
31 source: SqlError,
32 },
33
34 #[error("failed to execute statement {statement}: {source}")]
35 Execute {
36 statement: String,
37 #[source]
38 source: SqlError,
39 },
40}