From 1a57bcd083bfed495f1563fa1f2007783f78d34f Mon Sep 17 00:00:00 2001 From: timofey Date: Wed, 3 May 2023 11:00:58 +0000 Subject: [PATCH] _resolve_origin refactor --- src/core/resolver_origin.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/core/resolver_origin.rs b/src/core/resolver_origin.rs index b1c4b36..ac3b897 100644 --- a/src/core/resolver_origin.rs +++ b/src/core/resolver_origin.rs @@ -29,12 +29,13 @@ fn _resolve_origin<'a, Ctx: 'a + Context, A: Mentionable<'a, Ctx>>( ) -> Resolution<'a, Ctx, A> { let resolution = origin.r_resolver.clone().resolve(origin.r_address); Ctx::T::fmap( - move |resolved| match resolved { - Ok((src, resolver)) => match origin.r_factory.parse_slice(&src, resolver) { - Ok(mentionable) => Ok(Rc::new(mentionable)), - Err(parse_error) => Err(ResolutionError::Parse(parse_error)), - }, - Err(lookup_error) => Err(ResolutionError::Lookup(lookup_error)), + move |resolved| { + let (src, resolver) = resolved.map_err(ResolutionError::Lookup)?; + let mentionable = origin + .r_factory + .parse_slice(&src, resolver) + .map_err(ResolutionError::Parse)?; + Ok(Rc::new(mentionable)) }, resolution, )