From c9d7251e3b4e56e7c5ee817e257f873cabd5411d Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Tue, 17 Oct 2023 09:45:18 -0400 Subject: [PATCH] Begin removing the MyError type. --- src/context/context.rs | 1 - src/error/error.rs | 22 +++++++----------- src/error/mod.rs | 1 - src/parser/babel_call.rs | 1 - src/parser/citation_reference.rs | 1 - src/parser/comment.rs | 1 - src/parser/document.rs | 2 -- src/parser/drawer.rs | 1 - src/parser/dynamic_block.rs | 1 - src/parser/element_parser.rs | 1 - src/parser/entity.rs | 1 - src/parser/footnote_definition.rs | 1 - src/parser/footnote_reference.rs | 1 - src/parser/greater_block.rs | 4 +++- src/parser/headline.rs | 1 - src/parser/inline_babel_call.rs | 1 - src/parser/inline_source_block.rs | 1 - src/parser/keyword.rs | 1 - src/parser/latex_fragment.rs | 1 - src/parser/lesser_block.rs | 1 - src/parser/line_break.rs | 1 - src/parser/object_parser.rs | 1 - src/parser/org_source.rs | 31 ------------------------- src/parser/plain_link.rs | 1 - src/parser/plain_list.rs | 1 - src/parser/plain_text.rs | 1 - src/parser/property_drawer.rs | 1 - src/parser/radio_link.rs | 1 - src/parser/regular_link.rs | 1 - src/parser/subscript_and_superscript.rs | 1 - src/parser/target.rs | 1 - src/parser/text_markup.rs | 1 - src/parser/util.rs | 1 - 33 files changed, 12 insertions(+), 76 deletions(-) diff --git a/src/context/context.rs b/src/context/context.rs index bff8fb3..1de2aa5 100644 --- a/src/context/context.rs +++ b/src/context/context.rs @@ -9,7 +9,6 @@ use super::list::List; use super::DynContextMatcher; use super::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::OrgSource; diff --git a/src/error/error.rs b/src/error/error.rs index 43615de..b338a4f 100644 --- a/src/error/error.rs +++ b/src/error/error.rs @@ -2,23 +2,19 @@ use nom::error::ErrorKind; use nom::error::ParseError; use nom::IResult; -pub(crate) type Res = IResult>; +pub(crate) type Res = IResult; #[derive(Debug)] -pub enum CustomError { +pub enum CustomError { Text(String), - MyError(MyError<&'static str>), - Nom(I, ErrorKind), + Static(&'static str), IO(std::io::Error), BoxedError(Box), } -#[derive(Debug)] -pub struct MyError(pub(crate) I); - -impl ParseError for CustomError { +impl ParseError for CustomError { fn from_error_kind(input: I, kind: ErrorKind) -> Self { - CustomError::Nom(input, kind) + CustomError::Text(format!("{:?} {:?}", kind, input)) } fn append(_input: I, _kind: ErrorKind, /*mut*/ other: Self) -> Self { @@ -27,19 +23,19 @@ impl ParseError for CustomError { } } -impl From for CustomError { +impl From for CustomError { fn from(value: std::io::Error) -> Self { CustomError::IO(value) } } -impl From<&'static str> for CustomError { +impl From<&'static str> for CustomError { fn from(value: &'static str) -> Self { - CustomError::MyError(MyError(value)) + CustomError::Static(value) } } -impl From> for CustomError { +impl From> for CustomError { fn from(value: Box) -> Self { CustomError::BoxedError(value) } diff --git a/src/error/mod.rs b/src/error/mod.rs index 23cd35f..43b5794 100644 --- a/src/error/mod.rs +++ b/src/error/mod.rs @@ -1,5 +1,4 @@ #[allow(clippy::module_inception)] mod error; pub(crate) use error::CustomError; -pub(crate) use error::MyError; pub(crate) use error::Res; diff --git a/src/parser/babel_call.rs b/src/parser/babel_call.rs index 1f2447b..db50a25 100644 --- a/src/parser/babel_call.rs +++ b/src/parser/babel_call.rs @@ -21,7 +21,6 @@ use super::OrgSource; use crate::context::Matcher; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::util::get_consumed; use crate::parser::util::org_line_ending; diff --git a/src/parser/citation_reference.rs b/src/parser/citation_reference.rs index 4060de7..9598707 100644 --- a/src/parser/citation_reference.rs +++ b/src/parser/citation_reference.rs @@ -20,7 +20,6 @@ use crate::context::ExitClass; use crate::context::ExitMatcherNode; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::object_parser::minimal_set_object; use crate::parser::util::exit_matcher_parser; diff --git a/src/parser/comment.rs b/src/parser/comment.rs index 556b304..828dbf7 100644 --- a/src/parser/comment.rs +++ b/src/parser/comment.rs @@ -19,7 +19,6 @@ use crate::context::parser_with_context; use crate::context::ContextElement; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::util::exit_matcher_parser; use crate::parser::util::immediate_in_section; diff --git a/src/parser/document.rs b/src/parser/document.rs index 9b4b54c..8e0ca88 100644 --- a/src/parser/document.rs +++ b/src/parser/document.rs @@ -19,9 +19,7 @@ use crate::context::GlobalSettings; use crate::context::List; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; -use crate::parser::org_source::convert_error; use crate::parser::util::blank_line; use crate::types::AstNode; use crate::types::Document; diff --git a/src/parser/drawer.rs b/src/parser/drawer.rs index f430c84..9d1dbfd 100644 --- a/src/parser/drawer.rs +++ b/src/parser/drawer.rs @@ -19,7 +19,6 @@ use crate::context::ExitClass; use crate::context::ExitMatcherNode; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::element_parser::element; use crate::parser::util::blank_line; diff --git a/src/parser/dynamic_block.rs b/src/parser/dynamic_block.rs index 70cf5e8..c170acb 100644 --- a/src/parser/dynamic_block.rs +++ b/src/parser/dynamic_block.rs @@ -26,7 +26,6 @@ use crate::context::ExitClass; use crate::context::ExitMatcherNode; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::element_parser::element; use crate::parser::util::blank_line; diff --git a/src/parser/element_parser.rs b/src/parser/element_parser.rs index 0337559..ca553ee 100644 --- a/src/parser/element_parser.rs +++ b/src/parser/element_parser.rs @@ -30,7 +30,6 @@ use super::table::detect_table; use crate::context::parser_with_context; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::macros::ak_element; use crate::parser::macros::element; diff --git a/src/parser/entity.rs b/src/parser/entity.rs index 2fa1966..3ae0472 100644 --- a/src/parser/entity.rs +++ b/src/parser/entity.rs @@ -13,7 +13,6 @@ use super::util::maybe_consume_object_trailing_whitespace_if_not_exiting; use crate::context::EntityDefinition; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::util::get_consumed; use crate::types::Entity; diff --git a/src/parser/footnote_definition.rs b/src/parser/footnote_definition.rs index f888a27..f447def 100644 --- a/src/parser/footnote_definition.rs +++ b/src/parser/footnote_definition.rs @@ -22,7 +22,6 @@ use crate::context::ExitClass; use crate::context::ExitMatcherNode; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::element_parser::element; use crate::parser::util::blank_line; diff --git a/src/parser/footnote_reference.rs b/src/parser/footnote_reference.rs index 10daf42..76db35b 100644 --- a/src/parser/footnote_reference.rs +++ b/src/parser/footnote_reference.rs @@ -20,7 +20,6 @@ use crate::context::ExitMatcherNode; use crate::context::List; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::footnote_definition::label; use crate::parser::object_parser::standard_set_object; diff --git a/src/parser/greater_block.rs b/src/parser/greater_block.rs index 160d50f..5e8af14 100644 --- a/src/parser/greater_block.rs +++ b/src/parser/greater_block.rs @@ -28,7 +28,6 @@ use crate::context::ExitClass; use crate::context::ExitMatcherNode; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::element_parser::element; use crate::parser::util::blank_line; @@ -232,6 +231,9 @@ fn greater_block_body<'c, 'b, 'g, 'r, 's>( context_name: &'c str, ) -> Res, (&'s str, Vec>)> { if in_section(context, context_name) { + return Err(CustomError::Static( + "Cannot nest objects of the same element", + )); return Err(nom::Err::Error(CustomError::MyError(MyError( "Cannot nest objects of the same element", )))); diff --git a/src/parser/headline.rs b/src/parser/headline.rs index 98088c0..25663d1 100644 --- a/src/parser/headline.rs +++ b/src/parser/headline.rs @@ -29,7 +29,6 @@ use crate::context::ExitClass; use crate::context::ExitMatcherNode; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::object_parser::standard_set_object; use crate::parser::util::blank_line; diff --git a/src/parser/inline_babel_call.rs b/src/parser/inline_babel_call.rs index 68ae9f6..a87cc7c 100644 --- a/src/parser/inline_babel_call.rs +++ b/src/parser/inline_babel_call.rs @@ -19,7 +19,6 @@ use crate::context::ExitClass; use crate::context::ExitMatcherNode; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::util::exit_matcher_parser; use crate::parser::util::get_consumed; diff --git a/src/parser/inline_source_block.rs b/src/parser/inline_source_block.rs index 3379b5b..0611cb9 100644 --- a/src/parser/inline_source_block.rs +++ b/src/parser/inline_source_block.rs @@ -21,7 +21,6 @@ use crate::context::ExitClass; use crate::context::ExitMatcherNode; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::util::exit_matcher_parser; use crate::parser::util::get_consumed; diff --git a/src/parser/keyword.rs b/src/parser/keyword.rs index 4789b2e..b9445fb 100644 --- a/src/parser/keyword.rs +++ b/src/parser/keyword.rs @@ -25,7 +25,6 @@ use super::util::maybe_consume_trailing_whitespace_if_not_exiting; use crate::context::parser_with_context; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::macros::element; use crate::parser::util::start_of_line; diff --git a/src/parser/latex_fragment.rs b/src/parser/latex_fragment.rs index 9e217e5..6febdcf 100644 --- a/src/parser/latex_fragment.rs +++ b/src/parser/latex_fragment.rs @@ -17,7 +17,6 @@ use super::util::maybe_consume_object_trailing_whitespace_if_not_exiting; use crate::context::parser_with_context; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::util::exit_matcher_parser; use crate::parser::util::get_consumed; diff --git a/src/parser/lesser_block.rs b/src/parser/lesser_block.rs index 8fe26e1..91aa6b7 100644 --- a/src/parser/lesser_block.rs +++ b/src/parser/lesser_block.rs @@ -27,7 +27,6 @@ use crate::context::ExitClass; use crate::context::ExitMatcherNode; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::object_parser::standard_set_object; use crate::parser::util::blank_line; diff --git a/src/parser/line_break.rs b/src/parser/line_break.rs index fef8940..5e1dc06 100644 --- a/src/parser/line_break.rs +++ b/src/parser/line_break.rs @@ -7,7 +7,6 @@ use nom::multi::many0; use super::org_source::OrgSource; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::util::get_consumed; use crate::types::LineBreak; diff --git a/src/parser/object_parser.rs b/src/parser/object_parser.rs index 7298451..5603a35 100644 --- a/src/parser/object_parser.rs +++ b/src/parser/object_parser.rs @@ -4,7 +4,6 @@ use super::regular_link::regular_link; use super::subscript_and_superscript::detect_subscript_or_superscript; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::angle_link::angle_link; use crate::parser::citation::citation; diff --git a/src/parser/org_source.rs b/src/parser/org_source.rs index 058ec62..be27b48 100644 --- a/src/parser/org_source.rs +++ b/src/parser/org_source.rs @@ -10,9 +10,6 @@ use nom::InputTakeAtPosition; use nom::Offset; use nom::Slice; -use crate::error::CustomError; -use crate::error::MyError; - pub(crate) type BracketDepth = i16; #[derive(Copy, Clone, PartialEq)] @@ -385,34 +382,6 @@ impl<'n, 's> FindSubstring<&'n str> for OrgSource<'s> { } } -pub(crate) fn convert_error<'a, I: Into>>( - err: nom::Err, -) -> nom::Err> { - match err { - nom::Err::Incomplete(needed) => nom::Err::Incomplete(needed), - nom::Err::Error(err) => nom::Err::Error(err.into()), - nom::Err::Failure(err) => nom::Err::Failure(err.into()), - } -} - -impl<'s> From>> for CustomError<&'s str> { - fn from(value: CustomError>) -> Self { - match value { - CustomError::MyError(err) => CustomError::MyError(err), - CustomError::Nom(input, error_kind) => CustomError::Nom(input.into(), error_kind), - CustomError::IO(err) => CustomError::IO(err), - CustomError::BoxedError(err) => CustomError::BoxedError(err), - CustomError::Text(err) => CustomError::Text(err), - } - } -} - -impl<'s> From>> for MyError<&'s str> { - fn from(value: MyError>) -> Self { - MyError(value.0.into()) - } -} - #[cfg(test)] mod tests { use super::*; diff --git a/src/parser/plain_link.rs b/src/parser/plain_link.rs index f8b0cb3..f6fec5e 100644 --- a/src/parser/plain_link.rs +++ b/src/parser/plain_link.rs @@ -36,7 +36,6 @@ use crate::context::ExitMatcherNode; use crate::context::Matcher; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::util::exit_matcher_parser; use crate::parser::util::get_consumed; diff --git a/src/parser/plain_list.rs b/src/parser/plain_list.rs index 7fffd18..4829d56 100644 --- a/src/parser/plain_list.rs +++ b/src/parser/plain_list.rs @@ -32,7 +32,6 @@ use crate::context::ExitClass; use crate::context::ExitMatcherNode; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::util::blank_line; use crate::parser::util::exit_matcher_parser; diff --git a/src/parser/plain_text.rs b/src/parser/plain_text.rs index 0af1c67..6cc1915 100644 --- a/src/parser/plain_text.rs +++ b/src/parser/plain_text.rs @@ -20,7 +20,6 @@ use super::util::org_space_or_line_ending; use crate::context::parser_with_context; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::types::Object; use crate::types::PlainText; diff --git a/src/parser/property_drawer.rs b/src/parser/property_drawer.rs index 8f9ae20..284ceb5 100644 --- a/src/parser/property_drawer.rs +++ b/src/parser/property_drawer.rs @@ -21,7 +21,6 @@ use crate::context::ExitClass; use crate::context::ExitMatcherNode; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::util::get_consumed; use crate::parser::util::immediate_in_section; diff --git a/src/parser/radio_link.rs b/src/parser/radio_link.rs index 9951881..888efaf 100644 --- a/src/parser/radio_link.rs +++ b/src/parser/radio_link.rs @@ -21,7 +21,6 @@ use crate::context::ExitMatcherNode; use crate::context::List; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::util::get_consumed; use crate::types::Object; diff --git a/src/parser/regular_link.rs b/src/parser/regular_link.rs index e464c4c..d509611 100644 --- a/src/parser/regular_link.rs +++ b/src/parser/regular_link.rs @@ -43,7 +43,6 @@ use crate::context::ExitMatcherNode; use crate::context::List; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::types::LinkType; use crate::types::Object; diff --git a/src/parser/subscript_and_superscript.rs b/src/parser/subscript_and_superscript.rs index 0851ea7..1d69590 100644 --- a/src/parser/subscript_and_superscript.rs +++ b/src/parser/subscript_and_superscript.rs @@ -26,7 +26,6 @@ use crate::context::ExitMatcherNode; use crate::context::Matcher; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::util::get_consumed; use crate::types::Object; diff --git a/src/parser/target.rs b/src/parser/target.rs index 6ab0e61..f139b66 100644 --- a/src/parser/target.rs +++ b/src/parser/target.rs @@ -13,7 +13,6 @@ use crate::context::ExitClass; use crate::context::ExitMatcherNode; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::util::get_consumed; use crate::types::Target; diff --git a/src/parser/text_markup.rs b/src/parser/text_markup.rs index 6606ad5..7f02b93 100644 --- a/src/parser/text_markup.rs +++ b/src/parser/text_markup.rs @@ -34,7 +34,6 @@ use crate::context::ExitMatcherNode; use crate::context::List; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::parser::radio_link::rematch_target; use crate::parser::util::exit_matcher_parser; diff --git a/src/parser/util.rs b/src/parser/util.rs index 95155a6..f80e1df 100644 --- a/src/parser/util.rs +++ b/src/parser/util.rs @@ -20,7 +20,6 @@ use crate::context::parser_with_context; use crate::context::ContextElement; use crate::context::RefContext; use crate::error::CustomError; -use crate::error::MyError; use crate::error::Res; use crate::types::IndentationLevel;