bb8_libsql/
errors.rs

1use std::{fmt, error};
2
3use std::sync::mpsc::RecvError;
4
5#[derive(Debug)]
6pub enum ConnectionManagerError {
7    LibsqlError(libsql::Error),
8    RecvError(RecvError),
9}
10
11impl fmt::Display for ConnectionManagerError {
12    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
13        match self {
14            ConnectionManagerError::LibsqlError(err) => write!(f, "Libsql Error: `{}`", err),
15            ConnectionManagerError::RecvError(err) => write!(f, "Recv Error: `{}`", err),
16        }
17    }
18}
19
20impl error::Error for ConnectionManagerError {
21    fn source(&self) -> Option<&(dyn error::Error + 'static)> {
22        match self {
23            Self::LibsqlError(err) => Some(err),
24            Self::RecvError(err) => Some(err),
25        }
26    }
27}
28
29impl From<libsql::Error> for ConnectionManagerError {
30    fn from(value: libsql::Error) -> Self {
31        ConnectionManagerError::LibsqlError(value) 
32    }
33}
34
35impl From<RecvError> for ConnectionManagerError {
36    fn from(value: RecvError) -> Self {
37        ConnectionManagerError::RecvError(value) 
38    }
39}