From a3de4c5fbe29aa1770d5a46c78853209af8643d4 Mon Sep 17 00:00:00 2001 From: timofey Date: Sat, 5 Aug 2023 13:30:24 +0000 Subject: [PATCH] `ma_extend_sp` --- src/rstd/inlining/static_pair.rs | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/src/rstd/inlining/static_pair.rs b/src/rstd/inlining/static_pair.rs index f5ce5ed..5764778 100644 --- a/src/rstd/inlining/static_pair.rs +++ b/src/rstd/inlining/static_pair.rs @@ -198,7 +198,7 @@ where // annotated to help rust-analyzer Self::xsbind::( mentionable, - |pair| pair.into_elements(), + SP::into_elements, |b| Self::xmap_err(fb.mextend(b, tail), |e| SP::from_error_b(factory_data, e)), |a, b| SP::from_parsed(factory_data, a, b), ) @@ -296,6 +296,22 @@ where |b| SP::from_parsed(a, b), ) } + + pub fn ma_extend_sp( + atomic: ExtensionSourceP, + tail: &[u8], + ) -> ExtensionResultP { + Self::xsbind( + atomic, + SP::into_elements, + |b| { + Self::xmap_err(::ma_extend(b, tail), |e| { + SP::from_error_b(e) + }) + }, + |a, b| SP::from_parsed(a, b), + ) + } } impl AtomicModeParse for StaticPairObject @@ -310,15 +326,9 @@ where } fn ma_extend(atomic: AExtensionSourceM, tail: &[u8]) -> AExtensionResultM { - Self::xsbind( - atomic, - |StaticPairObject { pair }| pair.into_elements(), - |b| { - Self::xmap_err(::ma_extend(b, tail), |e| { - SP::from_error_b(e) - }) - }, - |a, b| SP::from_parsed(a, b).map(|pair| StaticPairObject { pair }), + Self::xbind( + Self::ma_extend_sp(Self::smap(atomic, |StaticPairObject { pair }| pair), tail), + |pair| Ok(StaticPairObject { pair }), ) } }