From e8d3e3c4f69fc5bab2b32b16b7c8c2c4a8a89a4b Mon Sep 17 00:00:00 2001 From: troido Date: Mon, 6 Apr 2020 10:37:53 +0200 Subject: made parseerrors their own thing --- src/errors.rs | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/errors.rs (limited to 'src/errors.rs') diff --git a/src/errors.rs b/src/errors.rs new file mode 100644 index 0000000..294159c --- /dev/null +++ b/src/errors.rs @@ -0,0 +1,47 @@ + +use std::error::Error; +use std::fmt::{Display, Formatter}; + +pub type AnyError = Box; +pub type Result = std::result::Result; + +#[derive(Debug)] +pub struct AError { + pub text: String +} +impl Error for AError { + fn source(&self) -> Option<&(dyn Error + 'static)> { + None + } +} +impl Display for AError { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "Error: {}", self.text) + } +} +#[macro_export] +macro_rules! aerr { + ($($description:tt)*) => {Box::new(crate::errors::AError{text: format!($($description)*)})} +} + + + +#[derive(Debug)] +pub struct ParseError { + pub text: String +} +impl Error for ParseError { + fn source(&self) -> Option<&(dyn Error + 'static)> { + None + } +} +impl Display for ParseError { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "Error: {}", self.text) + } +} +#[macro_export] +macro_rules! perr { + ($($description:tt)*) => {crate::errors::ParseError{text: format!($($description)*)}} +} +pub type PResult = std::result::Result; -- cgit