103 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| use std::num::ParseIntError;
 | |
| 
 | |
| use tokio::sync::mpsc;
 | |
| use redb;
 | |
| use bincode;
 | |
| 
 | |
| 
 | |
| // todo: more error types
 | |
| #[derive(Debug)]
 | |
| pub struct DBError(pub String);
 | |
| 
 | |
| impl std::fmt::Display for DBError {
 | |
|     fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 | |
|         write!(f, "{}", self.0)
 | |
|     }
 | |
| }
 | |
| 
 | |
| impl std::error::Error for DBError {}
 | |
| 
 | |
| impl From<std::io::Error> for DBError {
 | |
|     fn from(item: std::io::Error) -> Self {
 | |
|         DBError(item.to_string().clone())
 | |
|     }
 | |
| }
 | |
| 
 | |
| impl From<ParseIntError> for DBError {
 | |
|     fn from(item: ParseIntError) -> Self {
 | |
|         DBError(item.to_string().clone())
 | |
|     }
 | |
| }
 | |
| 
 | |
| impl From<std::str::Utf8Error> for DBError {
 | |
|     fn from(item: std::str::Utf8Error) -> Self {
 | |
|         DBError(item.to_string().clone())
 | |
|     }
 | |
| }
 | |
| 
 | |
| impl From<std::string::FromUtf8Error> for DBError {
 | |
|     fn from(item: std::string::FromUtf8Error) -> Self {
 | |
|         DBError(item.to_string().clone())
 | |
|     }
 | |
| }
 | |
| 
 | |
| impl From<redb::Error> for DBError {
 | |
|     fn from(item: redb::Error) -> Self {
 | |
|         DBError(item.to_string())
 | |
|     }
 | |
| }
 | |
| 
 | |
| impl From<redb::DatabaseError> for DBError {
 | |
|     fn from(item: redb::DatabaseError) -> Self {
 | |
|         DBError(item.to_string())
 | |
|     }
 | |
| }
 | |
| 
 | |
| impl From<redb::TransactionError> for DBError {
 | |
|     fn from(item: redb::TransactionError) -> Self {
 | |
|         DBError(item.to_string())
 | |
|     }
 | |
| }
 | |
| 
 | |
| impl From<redb::TableError> for DBError {
 | |
|     fn from(item: redb::TableError) -> Self {
 | |
|         DBError(item.to_string())
 | |
|     }
 | |
| }
 | |
| 
 | |
| impl From<redb::StorageError> for DBError {
 | |
|     fn from(item: redb::StorageError) -> Self {
 | |
|         DBError(item.to_string())
 | |
|     }
 | |
| }
 | |
| 
 | |
| impl From<redb::CommitError> for DBError {
 | |
|     fn from(item: redb::CommitError) -> Self {
 | |
|         DBError(item.to_string())
 | |
|     }
 | |
| }
 | |
| 
 | |
| impl From<Box<bincode::ErrorKind>> for DBError {
 | |
|     fn from(item: Box<bincode::ErrorKind>) -> Self {
 | |
|         DBError(item.to_string())
 | |
|     }
 | |
| }
 | |
| 
 | |
| impl From<tokio::sync::mpsc::error::SendError<()>> for DBError {
 | |
|     fn from(item: mpsc::error::SendError<()>) -> Self {
 | |
|         DBError(item.to_string().clone())
 | |
|     }
 | |
| }
 | |
| 
 | |
| impl From<serde_json::Error> for DBError {
 | |
|     fn from(item: serde_json::Error) -> Self {
 | |
|         DBError(item.to_string())
 | |
|     }
 | |
| }
 | |
| 
 | |
| impl From<chacha20poly1305::Error> for DBError {
 | |
|     fn from(item: chacha20poly1305::Error) -> Self {
 | |
|         DBError(item.to_string())
 | |
|     }
 | |
| }
 |