pulldown_html_ext/html/
error.rs1use std::error::Error;
2use std::fmt;
3use std::io;
4
5#[derive(Debug)]
7pub enum HtmlError {
8 Io(io::Error),
10 Write(fmt::Error),
12 Theme(String),
14 Config(String),
16 Render(String),
18}
19
20impl fmt::Display for HtmlError {
21 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
22 match self {
23 HtmlError::Io(err) => write!(f, "IO error: {}", err),
24 HtmlError::Write(err) => write!(f, "Write error: {}", err),
25 HtmlError::Theme(err) => write!(f, "Theme error: {}", err),
26 HtmlError::Config(err) => write!(f, "Configuration error: {}", err),
27 HtmlError::Render(err) => write!(f, "Rendering error: {}", err),
28 }
29 }
30}
31
32impl Error for HtmlError {
33 fn source(&self) -> Option<&(dyn Error + 'static)> {
34 match self {
35 HtmlError::Io(err) => Some(err),
36 HtmlError::Write(err) => Some(err),
37 _ => None,
38 }
39 }
40}
41
42impl From<io::Error> for HtmlError {
43 fn from(err: io::Error) -> Self {
44 HtmlError::Io(err)
45 }
46}
47
48impl From<fmt::Error> for HtmlError {
49 fn from(err: fmt::Error) -> Self {
50 HtmlError::Write(err)
51 }
52}