_resolve_origin refactor
This commit is contained in:
parent
8a384caab0
commit
1a57bcd083
@ -29,12 +29,13 @@ fn _resolve_origin<'a, Ctx: 'a + Context, A: Mentionable<'a, Ctx>>(
|
|||||||
) -> Resolution<'a, Ctx, A> {
|
) -> Resolution<'a, Ctx, A> {
|
||||||
let resolution = origin.r_resolver.clone().resolve(origin.r_address);
|
let resolution = origin.r_resolver.clone().resolve(origin.r_address);
|
||||||
Ctx::T::fmap(
|
Ctx::T::fmap(
|
||||||
move |resolved| match resolved {
|
move |resolved| {
|
||||||
Ok((src, resolver)) => match origin.r_factory.parse_slice(&src, resolver) {
|
let (src, resolver) = resolved.map_err(ResolutionError::Lookup)?;
|
||||||
Ok(mentionable) => Ok(Rc::new(mentionable)),
|
let mentionable = origin
|
||||||
Err(parse_error) => Err(ResolutionError::Parse(parse_error)),
|
.r_factory
|
||||||
},
|
.parse_slice(&src, resolver)
|
||||||
Err(lookup_error) => Err(ResolutionError::Lookup(lookup_error)),
|
.map_err(ResolutionError::Parse)?;
|
||||||
|
Ok(Rc::new(mentionable))
|
||||||
},
|
},
|
||||||
resolution,
|
resolution,
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user