From ad7cde407019732245f6336243bf1b7fc523e11a Mon Sep 17 00:00:00 2001 From: Seb Ospina Date: Mon, 24 Mar 2025 22:05:11 +0100 Subject: [PATCH 1/2] Adjust FnMut param in dbg_dmp since take/map are now FnMut Signed-off-by: Seb Ospina --- src/error.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/error.rs b/src/error.rs index dac6a4007..74760c591 100644 --- a/src/error.rs +++ b/src/error.rs @@ -490,11 +490,11 @@ macro_rules! error_node_position( #[cfg(feature = "std")] #[cfg_attr(feature = "docsrs", doc(cfg(feature = "std")))] pub fn dbg_dmp<'a, F, O, E: std::fmt::Debug>( - f: F, + mut f: F, context: &'static str, -) -> impl Fn(&'a [u8]) -> IResult<&'a [u8], O, E> +) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], O, E> where - F: Fn(&'a [u8]) -> IResult<&'a [u8], O, E>, + F: FnMut(&'a [u8]) -> IResult<&'a [u8], O, E>, { use crate::HexDisplay; move |i: &'a [u8]| match f(i) { From d266921eaa06d4ef50bdc558b86b69ac2f3649fb Mon Sep 17 00:00:00 2001 From: Seb Ospina Date: Mon, 24 Mar 2025 22:29:15 +0100 Subject: [PATCH 2/2] dbg_dmp take FnMut test --- tests/issues.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/issues.rs b/tests/issues.rs index 2b1923d6a..e8c3e0ac6 100644 --- a/tests/issues.rs +++ b/tests/issues.rs @@ -269,3 +269,13 @@ fn issue_1586_parser_iterator_impl() { assert_eq!(parse_input("123\n456").collect::>(), vec![123, 456]); } + +#[test] +fn issue_1844_take_fnmut_with_dbg_dmp() { + use nom::{bytes::complete::take, error::dbg_dmp, IResult}; + fn f(i: &[u8]) -> IResult<&[u8], &[u8]> { + dbg_dmp(take(1usize), "take")(i) + } + + assert!(f(&b"00"[..]).is_ok()); +}