wall_rs/
error.rs

1use octocrab::Error as OctoError;
2use std::fmt::{Debug, Formatter};
3
4pub enum Error {
5    FileOpenError(std::io::Error),
6    SerializeError(String),
7    DeserializeError(String),
8    ReadConfigError(std::io::Error),
9    WriteConfigError(std::io::Error),
10    NoCorrespondingPathError,
11    ReadDirError(std::io::Error),
12    PathBufParseError(String),
13    NotListableDirectory(String),
14    ReleaseFetchError(OctoError),
15    NoVersionFound,
16    NoInternetConnection,
17    CantCreateDownloadedFile(String),
18    CantCreateCursorBytes,
19    CantCopyBytes,
20}
21
22impl Debug for Error {
23    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
24        match self {
25            Error::FileOpenError(io) => write!(f, "Failed on trying to open file: {}", io),
26            Error::SerializeError(target) => write!(f, "Failed while serializing data: {}", target),
27            Error::DeserializeError(target) => write!(f, "Failed while deserializing data: {}", target),
28            Error::ReadConfigError(io) => write!(f, "Failed while trying to read config: {}", io),
29            Error::WriteConfigError(io) => write!(f, "Failed while trying to write data to a file: {}", io),
30            Error::NoCorrespondingPathError => write!(
31                f,
32                "Failed while trying to find config file, probably directories namely doesn't exist."
33            ),
34            Error::ReadDirError(io) => write!(f, "Failed while trying read contents in a directory: {}", io),
35            Error::PathBufParseError(target) => write!(f, "Can't parse the path: {}", target),
36            Error::NotListableDirectory(target) => write!(f, "The following {} directory can't be listed", target),
37            Error::ReleaseFetchError(trace) => write!(f, "Failed to fetch releases: {}", trace),
38            Error::NoVersionFound => write!(f, "Couldn't get latest version from list"),
39            Error::NoInternetConnection => write!(f, "Seems like you don't have access to Internet, right?)"),
40            Error::CantCreateDownloadedFile(target) => write!(f, "Couldn't create the file {}", target),
41            Error::CantCreateCursorBytes => write!(f, "Can't create cursor bytes for response"),
42            Error::CantCopyBytes => write!(f, "Couldn't copy downloaded bytes to file")
43        }
44    }
45}