Performance optimization.
This commit is contained in:
		
							parent
							
								
									353ff07420
								
							
						
					
					
						commit
						e111b8b9b8
					
				| @ -12,7 +12,9 @@ use super::util::start_of_line; | ||||
| use super::OrgSource; | ||||
| use crate::context::bind_context; | ||||
| use crate::context::RefContext; | ||||
| use crate::error::CustomError; | ||||
| use crate::error::Res; | ||||
| use crate::parser::macros::element; | ||||
| use crate::types::AffiliatedKeywords; | ||||
| use crate::types::Object; | ||||
| use crate::types::Paragraph; | ||||
| @ -40,8 +42,9 @@ pub(crate) fn detect_bullshitium<'b, 'g, 'r, 's>( | ||||
|     context: RefContext<'b, 'g, 'r, 's>, | ||||
|     input: OrgSource<'s>, | ||||
| ) -> Res<OrgSource<'s>, ()> { | ||||
|     bullshitium(context, input)?; | ||||
|     Ok((input, ())) | ||||
|     element!(detect_broken_end, context, input); | ||||
|     element!(detect_broken_dynamic_block, context, input); | ||||
|     Err(nom::Err::Error(CustomError::Static("No bullshitium."))) | ||||
| } | ||||
| 
 | ||||
| #[cfg_attr(
 | ||||
| @ -88,6 +91,21 @@ pub(crate) fn broken_end<'b, 'g, 'r, 's>( | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| #[cfg_attr(
 | ||||
|     feature = "tracing", | ||||
|     tracing::instrument(ret, level = "debug", skip(context)) | ||||
| )] | ||||
| pub(crate) fn detect_broken_end<'b, 'g, 'r, 's>( | ||||
|     _context: RefContext<'b, 'g, 'r, 's>, | ||||
|     input: OrgSource<'s>, | ||||
| ) -> Res<OrgSource<'s>, ()> { | ||||
|     start_of_line(input)?; | ||||
|     let (remaining, _) = space0(input)?; | ||||
|     let (remaining, _) = tag_no_case(":end:")(remaining)?; | ||||
|     let (_remaining, _) = tuple((space0, org_line_ending))(remaining)?; | ||||
|     Ok((input, ())) | ||||
| } | ||||
| 
 | ||||
| #[cfg_attr(
 | ||||
|     feature = "tracing", | ||||
|     tracing::instrument(ret, level = "debug", skip(context)) | ||||
| @ -131,3 +149,17 @@ pub(crate) fn broken_dynamic_block<'b, 'g, 'r, 's>( | ||||
|         )) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| #[cfg_attr(
 | ||||
|     feature = "tracing", | ||||
|     tracing::instrument(ret, level = "debug", skip(context)) | ||||
| )] | ||||
| pub(crate) fn detect_broken_dynamic_block<'b, 'g, 'r, 's>( | ||||
|     _context: RefContext<'b, 'g, 'r, 's>, | ||||
|     input: OrgSource<'s>, | ||||
| ) -> Res<OrgSource<'s>, ()> { | ||||
|     start_of_line(input)?; | ||||
|     let (remaining, _) = space0(input)?; | ||||
|     let (_remaining, _) = tag_no_case("#+BEGIN:")(remaining)?; | ||||
|     Ok((input, ())) | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Tom Alexander
						Tom Alexander