move inject out

This commit is contained in:
AF 2023-06-23 12:37:25 +00:00
parent 93d42626ae
commit 28cfaf47d5

View File

@ -15,8 +15,8 @@ struct InjectedResolver<'a, Ctx: Context<'a>, F: Inject<'a, Ctx>> {
impl<'a, Ctx: Context<'a>, F: Inject<'a, Ctx>> Resolver<'a, Ctx> for InjectedResolver<'a, Ctx, F> { impl<'a, Ctx: Context<'a>, F: Inject<'a, Ctx>> Resolver<'a, Ctx> for InjectedResolver<'a, Ctx, F> {
fn resolve(self: Rc<Self>, address: crate::rcore::Address) -> HashResolution<'a, Ctx> { fn resolve(self: Rc<Self>, address: crate::rcore::Address) -> HashResolution<'a, Ctx> {
let inject = self.inject.clone(); let inject = self.inject.clone();
Ctx::fmap( self.inject.inject(Ctx::fmap(
self.inject.inject(self.resolver.clone().resolve(address)), self.resolver.clone().resolve(address),
|resolved| match resolved { |resolved| match resolved {
Ok((source, resolver)) => Ok(( Ok((source, resolver)) => Ok((
source, source,
@ -24,6 +24,6 @@ impl<'a, Ctx: Context<'a>, F: Inject<'a, Ctx>> Resolver<'a, Ctx> for InjectedRes
)), )),
Err(e) => Err(e), Err(e) => Err(e),
}, },
) ))
} }
} }