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}