From 88c702e6a80c1d89f7eb5eb567e4036811d0e873 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Fri, 25 Oct 2024 09:06:14 -0500 Subject: [PATCH] refactor(parser): Switch 'impl FnMut' to 'impl Parser' --- rinja_parser/src/lib.rs | 10 +++++----- rinja_parser/src/node.rs | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/rinja_parser/src/lib.rs b/rinja_parser/src/lib.rs index 5d7b0bcd..859bcb3b 100644 --- a/rinja_parser/src/lib.rs +++ b/rinja_parser/src/lib.rs @@ -286,8 +286,8 @@ fn not_ws(c: char) -> bool { } fn ws<'a, O>( - inner: impl FnMut(&'a str) -> ParseResult<'a, O>, -) -> impl FnMut(&'a str) -> ParseResult<'a, O> { + inner: impl Parser<&'a str, O, ErrorContext<'a>>, +) -> impl Parser<&'a str, O, ErrorContext<'a>> { delimited(take_till(not_ws), inner, take_till(not_ws)) } @@ -295,8 +295,8 @@ fn ws<'a, O>( /// Returns tuple that would be returned when parsing `end`. fn skip_till<'a, 'b, O>( candidate_finder: impl crate::memchr_splitter::Splitter, - end: impl FnMut(&'a str) -> ParseResult<'a, O>, -) -> impl FnMut(&'a str) -> ParseResult<'a, (&'a str, O)> { + end: impl Parser<&'a str, O, ErrorContext<'a>>, +) -> impl Parser<&'a str, (&'a str, O), ErrorContext<'a>> { let mut next = alt((map(end, Some), map(anychar, |_| None))); move |start: &'a str| { let mut i = start; @@ -318,7 +318,7 @@ fn skip_till<'a, 'b, O>( } } -fn keyword<'a>(k: &'a str) -> impl FnMut(&'a str) -> ParseResult<'a> { +fn keyword<'a>(k: &'a str) -> impl Parser<&'a str, &'a str, ErrorContext<'a>> { move |i: &'a str| -> ParseResult<'a> { let (j, v) = identifier.parse_next(i)?; if k == v { Ok((j, v)) } else { fail(i) } diff --git a/rinja_parser/src/node.rs b/rinja_parser/src/node.rs index 0c893b90..4f95b21b 100644 --- a/rinja_parser/src/node.rs +++ b/rinja_parser/src/node.rs @@ -210,8 +210,8 @@ impl<'a> Node<'a> { fn cut_node<'a, O>( kind: Option<&'static str>, - inner: impl FnMut(&'a str) -> ParseResult<'a, O>, -) -> impl FnMut(&'a str) -> ParseResult<'a, O> { + inner: impl Parser<&'a str, O, ErrorContext<'a>>, +) -> impl Parser<&'a str, O, ErrorContext<'a>> { let mut inner = cut(inner); move |i: &'a str| { let result = inner.parse_next(i);