From 1bbfbc31640b205a83545e2e534878d25201927d Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Mon, 14 Aug 2023 17:18:48 -0400 Subject: [PATCH] Add additional tracing to lesser block. --- src/parser/lesser_block.rs | 54 +++++++++++++++++++++++++------------- 1 file changed, 36 insertions(+), 18 deletions(-) diff --git a/src/parser/lesser_block.rs b/src/parser/lesser_block.rs index 3b7c68c..2e86036 100644 --- a/src/parser/lesser_block.rs +++ b/src/parser/lesser_block.rs @@ -238,31 +238,49 @@ fn lesser_block_end( ) -> impl for<'r, 's> Fn(Context<'r, 's>, &'s str) -> Res<&'s str, &'s str> { let current_name_lower = current_name.to_lowercase(); move |context: Context, input: &str| { - start_of_line(context, input)?; - let (remaining, _leading_whitespace) = space0(input)?; - let (remaining, (_begin, _name, _ws)) = tuple(( - tag_no_case("#+end_"), - tag_no_case(current_name_lower.as_str()), - alt((eof, line_ending)), - ))(remaining)?; - let source = get_consumed(input, remaining); - Ok((remaining, source)) + _lesser_block_end(context, input, current_name_lower.as_str()) } } +#[cfg_attr(feature = "tracing", tracing::instrument(ret, level = "debug"))] +fn _lesser_block_end<'r, 's, 'x>( + context: Context<'r, 's>, + input: &'s str, + current_name_lower: &'x str, +) -> Res<&'s str, &'s str> { + start_of_line(context, input)?; + let (remaining, _leading_whitespace) = space0(input)?; + let (remaining, (_begin, _name, _ws)) = tuple(( + tag_no_case("#+end_"), + tag_no_case(current_name_lower), + alt((eof, line_ending)), + ))(remaining)?; + let source = get_consumed(input, remaining); + Ok((remaining, source)) +} + fn lesser_block_begin( current_name: &str, ) -> impl for<'r, 's> Fn(Context<'r, 's>, &'s str) -> Res<&'s str, &'s str> { let current_name_lower = current_name.to_lowercase(); move |context: Context, input: &str| { - start_of_line(context, input)?; - let (remaining, _leading_whitespace) = space0(input)?; - let (remaining, (_begin, name)) = tuple(( - tag_no_case("#+begin_"), - verify(name, |name: &str| { - name.to_lowercase().as_str() == current_name_lower - }), - ))(remaining)?; - Ok((remaining, name)) + _lesser_block_begin(context, input, current_name_lower.as_str()) } } + +#[cfg_attr(feature = "tracing", tracing::instrument(ret, level = "debug"))] +fn _lesser_block_begin<'r, 's, 'x>( + context: Context<'r, 's>, + input: &'s str, + current_name_lower: &'x str, +) -> Res<&'s str, &'s str> { + start_of_line(context, input)?; + let (remaining, _leading_whitespace) = space0(input)?; + let (remaining, (_begin, name)) = tuple(( + tag_no_case("#+begin_"), + verify(name, |name: &str| { + name.to_lowercase().as_str() == current_name_lower + }), + ))(remaining)?; + Ok((remaining, name)) +}