From 7dbc734c53f17eae12f1508710ed7cd214de6c2d Mon Sep 17 00:00:00 2001 From: timofey Date: Fri, 30 Jun 2023 18:47:18 +0000 Subject: [PATCH] simpler `StackNodeFactory::deserialize` --- src/rstd/collections/stack.rs | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/rstd/collections/stack.rs b/src/rstd/collections/stack.rs index 3d8cca5..da8cc5c 100644 --- a/src/rstd/collections/stack.rs +++ b/src/rstd/collections/stack.rs @@ -75,18 +75,13 @@ impl<'a, Ctx: Context<'a>, F: Factory<'a, Ctx>> Factory<'a, Ctx> for StackNodeFa type ParseError = StackParseError>; fn deserialize(&self, dectx: &mut dyn DeCtx<'a, Ctx>) -> ParseResult<'a, Ctx, Self> { - let rest = match NullableFactory::new(self.clone()).deserialize(dectx) { - Ok(rest) => rest, - Err(ppe) => { - return Err(StackParseError::Point(ppe)); - } - }; - let element = match self.element_factory.deserialize(dectx) { - Ok(element) => element, - Err(epe) => { - return Err(StackParseError::Element(epe)); - } - }; + let rest = NullableFactory::new(self.clone()) + .deserialize(dectx) + .map_err(StackParseError::Point)?; + let element = self + .element_factory + .deserialize(dectx) + .map_err(StackParseError::Element)?; Ok(StackNode { rest, element }) }