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