webserver_base/templates/
error.rs

1use handlebars::{RenderError, TemplateError};
2use std::fmt::{Debug, Formatter};
3use std::{error, fmt, io};
4
5#[derive(Debug)]
6pub enum TemplateRegistryError {
7    FileIOError(io::Error),
8    TemplateError(TemplateError),
9    RenderError(RenderError),
10}
11
12impl error::Error for TemplateRegistryError {}
13
14impl fmt::Display for TemplateRegistryError {
15    fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
16        match self {
17            Self::FileIOError(io_error) => std::fmt::Display::fmt(&io_error, f),
18            Self::TemplateError(template_error) => std::fmt::Display::fmt(&template_error, f),
19            Self::RenderError(render_error) => std::fmt::Display::fmt(&render_error, f),
20        }
21    }
22}
23
24impl From<io::Error> for TemplateRegistryError {
25    fn from(io_error: io::Error) -> Self {
26        Self::FileIOError(io_error)
27    }
28}
29
30impl From<TemplateError> for TemplateRegistryError {
31    fn from(template_error: TemplateError) -> Self {
32        Self::TemplateError(template_error)
33    }
34}
35
36impl From<RenderError> for TemplateRegistryError {
37    fn from(render_error: RenderError) -> Self {
38        Self::RenderError(render_error)
39    }
40}