From bd230c3d916be2af8f97e587f3f764800077cba4 Mon Sep 17 00:00:00 2001 From: Naz Date: Thu, 31 Jul 2025 14:54:01 +0100 Subject: =?UTF-8?q?=E2=9C=A8feat:=20implement=20Display=20and=20Error=20tr?= =?UTF-8?q?aits=20for=20custom=20Error=20enum?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/error.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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 {} -- cgit v1.2.3