markdown_parser/
error.rs

1use std::borrow::Cow;
2
3use quick_error::quick_error;
4
5use crate::Format;
6
7#[derive(Debug)]
8pub enum ParseError {
9    BadFormat(Format),
10    MissingAllFormat,
11}
12
13#[cfg(feature = "adapt")]
14quick_error! {
15    #[derive(Debug)]
16    #[cfg(feature = "adapt")]
17    pub enum SerdeError {
18        JsonError(err: serde_json::Error) {
19            from()
20        }
21
22        YamlError(err: serde_yaml::Error) {
23            from()
24        }
25
26        TomlSerError(err: toml::ser::Error) {
27            from()
28        }
29
30        TomlDeError(err: toml::de::Error) {
31            from()
32        }
33    }
34}
35
36quick_error! {
37    #[derive(Debug)]
38    pub enum Error  {
39
40        IO(err: std::io::Error) {
41            from()
42        }
43
44        Regex(err: regex::Error) {
45            from()
46        }
47
48        Parse(err: ParseError) {
49            from()
50        }
51
52        #[cfg(feature = "adapt")]
53        Serde(err: SerdeError) {
54            from()
55            from(err: toml::de::Error) -> (SerdeError::from(err))
56            from(err: toml::ser::Error) -> (SerdeError::from(err))
57            from(err: serde_json::Error) -> (SerdeError::from(err))
58            from(err: serde_yaml::Error) -> (SerdeError::from(err))
59        }
60
61        Unexpected(err: Cow<'static, str>) {
62            from()
63        }
64    }
65}