use std::str::Utf8Error; use std::string::FromUtf8Error; #[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), Serde(serde_json::Error), Utf8(Utf8Error), FromUtf8(FromUtf8Error), } impl From 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 for CustomError { fn from(value: toml::ser::Error) -> Self { CustomError::TomlSerialize(value) } } impl From for CustomError { fn from(value: toml::de::Error) -> Self { CustomError::TomlDeserialize(value) } } impl From for CustomError { fn from(value: walkdir::Error) -> Self { CustomError::WalkDir(value) } } impl From for CustomError { fn from(value: tokio::task::JoinError) -> Self { CustomError::Tokio(value) } } impl From for CustomError { fn from(value: serde_json::Error) -> Self { CustomError::Serde(value) } } impl From for CustomError { fn from(value: Utf8Error) -> Self { CustomError::Utf8(value) } } impl From for CustomError { fn from(value: FromUtf8Error) -> Self { CustomError::FromUtf8(value) } }