83 lines
1.8 KiB
Rust
83 lines
1.8 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 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())
|
|
}
|
|
}
|