Switch to using CustomError because a boxed StdError is not Send.

This commit is contained in:
Tom Alexander
2023-10-22 13:44:03 -04:00
parent d8fc49797e
commit 2f0f3ab346
8 changed files with 95 additions and 61 deletions

45
src/error/error.rs Normal file
View File

@@ -0,0 +1,45 @@
#[derive(Debug)]
pub(crate) enum CustomError {
Static(&'static str),
IO(std::io::Error),
TomlSerialize(toml::ser::Error),
TomlDeserialize(toml::de::Error),
WalkDir(walkdir::Error),
Tokio(tokio::task::JoinError),
}
impl From<std::io::Error> for CustomError {
fn from(value: std::io::Error) -> Self {
CustomError::IO(value)
}
}
impl From<&'static str> for CustomError {
fn from(value: &'static str) -> Self {
CustomError::Static(value)
}
}
impl From<toml::ser::Error> for CustomError {
fn from(value: toml::ser::Error) -> Self {
CustomError::TomlSerialize(value)
}
}
impl From<toml::de::Error> for CustomError {
fn from(value: toml::de::Error) -> Self {
CustomError::TomlDeserialize(value)
}
}
impl From<walkdir::Error> for CustomError {
fn from(value: walkdir::Error) -> Self {
CustomError::WalkDir(value)
}
}
impl From<tokio::task::JoinError> for CustomError {
fn from(value: tokio::task::JoinError) -> Self {
CustomError::Tokio(value)
}
}

3
src/error/mod.rs Normal file
View File

@@ -0,0 +1,3 @@
#[allow(clippy::module_inception)]
mod error;
pub(crate) use error::CustomError;