sea_schema/sqlite/
error.rs1use std::num::{ParseFloatError, ParseIntError};
2
3use crate::rusqlite_types::RusqliteError;
4
5pub type DiscoveryResult<T> = Result<T, SqliteDiscoveryError>;
7
8#[derive(Debug)]
10pub enum SqliteDiscoveryError {
11 ParseIntError,
13 ParseFloatError,
15 IndexNotFound(String),
17 RusqliteError(RusqliteError),
19}
20
21impl From<ParseIntError> for SqliteDiscoveryError {
22 fn from(_: ParseIntError) -> Self {
23 SqliteDiscoveryError::ParseIntError
24 }
25}
26
27impl From<ParseFloatError> for SqliteDiscoveryError {
28 fn from(_: ParseFloatError) -> Self {
29 SqliteDiscoveryError::ParseFloatError
30 }
31}
32
33impl From<RusqliteError> for SqliteDiscoveryError {
34 fn from(error: RusqliteError) -> Self {
35 SqliteDiscoveryError::RusqliteError(error)
36 }
37}
38
39impl std::error::Error for SqliteDiscoveryError {}
40
41impl std::fmt::Display for SqliteDiscoveryError {
42 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
43 match self {
44 SqliteDiscoveryError::ParseIntError => write!(f, "Parse Integer Error"),
45 SqliteDiscoveryError::ParseFloatError => write!(f, "Parse Float Error"),
46 SqliteDiscoveryError::IndexNotFound(index) => write!(f, "Index Not Found: {index}"),
47 SqliteDiscoveryError::RusqliteError(e) => write!(f, "Rusqlite Error: {e:?}"),
48 }
49 }
50}