ma_extend_sp
All checks were successful
buildbot/fmt-check Build done.
buildbot/runtests Build done.
buildbot/rustdoc Build done.
buildbot/clippy Build done.

This commit is contained in:
AF 2023-08-05 13:30:24 +00:00
parent 6cff44c652
commit a3de4c5fbe

View File

@ -198,7 +198,7 @@ where
// annotated to help rust-analyzer
Self::xsbind::<SP, _, _, _>(
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<Self, SP>,
tail: &[u8],
) -> ExtensionResultP<Self, SP, SP::AParseError> {
Self::xsbind(
atomic,
SP::into_elements,
|b| {
Self::xmap_err(<SP::B as AtomicModeParse>::ma_extend(b, tail), |e| {
SP::from_error_b(e)
})
},
|a, b| SP::from_parsed(a, b),
)
}
}
impl<SP: StaticPairAtomic> AtomicModeParse for StaticPairObject<SP>
@ -310,15 +326,9 @@ where
}
fn ma_extend(atomic: AExtensionSourceM<Self>, tail: &[u8]) -> AExtensionResultM<Self> {
Self::xsbind(
atomic,
|StaticPairObject { pair }| pair.into_elements(),
|b| {
Self::xmap_err(<SP::B as AtomicModeParse>::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 }),
)
}
}