summaryrefslogtreecommitdiff
path: root/src/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/error.rs')
-rw-r--r--src/error.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/error.rs b/src/error.rs
index 0183e38..3c51529 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -19,3 +19,21 @@ pub enum Error {
#[from]
EnvVar(std::env::VarError),
}
+
+impl core::fmt::Display for Error {
+ fn fmt(&self, fmt: &mut core::fmt::Formatter) -> core::result::Result<(), std::fmt::Error> {
+ match self {
+ Error::Io(e) => match e.kind() {
+ std::io::ErrorKind::NotFound => write!(fmt, "File or directory not found"),
+ _ => write!(fmt, "IO error: {e}"),
+ },
+ Error::NotFound(name) => write!(fmt, "Application '{name}' not found"),
+ Error::Json(e) => write!(fmt, "JSON error: {e}"),
+ Error::Http(e) => write!(fmt, "HTTP error: {e}"),
+ Error::EnvVar(e) => write!(fmt, "Environment variable error: {e}"),
+ Error::InvalidPath => write!(fmt, "Invalid path provided"),
+ }
+ }
+}
+
+impl std::error::Error for Error {}