From 17ea3e7f44807af256553508eb7cae5a959cba22 Mon Sep 17 00:00:00 2001 From: glyph Date: Fri, 11 Feb 2022 10:31:31 +0200 Subject: [PATCH] add golgi dependency and error variant --- peach-web/Cargo.toml | 1 + peach-web/src/error.rs | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/peach-web/Cargo.toml b/peach-web/Cargo.toml index ddd4b0d..4183c91 100644 --- a/peach-web/Cargo.toml +++ b/peach-web/Cargo.toml @@ -36,6 +36,7 @@ maintenance = { status = "actively-developed" } [dependencies] env_logger = "0.8" +golgi = { path = "../../../playground/rust/golgi" } lazy_static = "1.4.0" log = "0.4" nest = "1.0.0" diff --git a/peach-web/src/error.rs b/peach-web/src/error.rs index 6288b6b..10d532d 100644 --- a/peach-web/src/error.rs +++ b/peach-web/src/error.rs @@ -1,5 +1,6 @@ //! Custom error type representing all possible error variants for peach-web. +use golgi::GolgiError; use peach_lib::error::PeachError; use peach_lib::{serde_json, serde_yaml}; use serde_json::error::Error as JsonError; @@ -8,6 +9,7 @@ use serde_yaml::Error as YamlError; /// Custom error type encapsulating all possible errors for the web application. #[derive(Debug)] pub enum PeachWebError { + Golgi(GolgiError), Json(JsonError), Yaml(YamlError), FailedToRegisterDynDomain(String), @@ -17,6 +19,7 @@ pub enum PeachWebError { impl std::error::Error for PeachWebError { fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { match *self { + PeachWebError::Golgi(ref source) => Some(source), PeachWebError::Json(ref source) => Some(source), PeachWebError::Yaml(ref source) => Some(source), PeachWebError::FailedToRegisterDynDomain(_) => None, @@ -28,6 +31,7 @@ impl std::error::Error for PeachWebError { impl std::fmt::Display for PeachWebError { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { match *self { + PeachWebError::Golgi(ref source) => write!(f, "Golgi error: {}", source), PeachWebError::Json(ref source) => write!(f, "Serde JSON error: {}", source), PeachWebError::Yaml(ref source) => write!(f, "Serde YAML error: {}", source), PeachWebError::FailedToRegisterDynDomain(ref msg) => { @@ -38,6 +42,12 @@ impl std::fmt::Display for PeachWebError { } } +impl From for PeachWebError { + fn from(err: GolgiError) -> PeachWebError { + PeachWebError::Golgi(err) + } +} + impl From for PeachWebError { fn from(err: JsonError) -> PeachWebError { PeachWebError::Json(err)