1use core::array::TryFromSliceError;
2use core::fmt::Display;
3use std::error::Error as StdError;
4use std::io::Error as StdioError;
5
6pub type SqliteResult<T> = Result<T, SqliteError>;
7
8#[derive(Debug)]
9pub enum SqliteError {
10 EmptyDb,
11 InvalidFileUriMode,
12 HeaderValidationError(String),
13 TryFromSliceError(TryFromSliceError),
14 StdioError(StdioError),
15 Custom(String),
16 ParsingField(FieldParsingError),
17 InvalidPayloadSize(InvalidPayloadSizeError),
18}
19
20#[derive(Debug)]
21pub struct FieldParsingError {
22 pub error: String,
23 pub ty: String,
24}
25
26#[derive(Debug)]
27pub struct InvalidPayloadSizeError {
28 pub error: String,
29 pub ty: String,
30}
31
32impl Display for SqliteError {
33 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
34 write!(f, "{:?}", self)
36 }
37}
38
39impl From<TryFromSliceError> for SqliteError {
40 fn from(error: TryFromSliceError) -> Self {
41 Self::TryFromSliceError(error)
42 }
43}
44
45impl StdError for SqliteError {}
46
47impl From<StdioError> for SqliteError {
48 fn from(io_error: StdioError) -> Self {
49 Self::StdioError(io_error)
50 }
51}