From b5862b45fd53a918102e020da877e4f410792e21 Mon Sep 17 00:00:00 2001 From: timofey Date: Fri, 30 Jun 2023 21:35:35 +0000 Subject: [PATCH] `InCtxDyn` --- src/rstd/inlining.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/rstd/inlining.rs b/src/rstd/inlining.rs index 54e7b11..9476662 100644 --- a/src/rstd/inlining.rs +++ b/src/rstd/inlining.rs @@ -111,6 +111,23 @@ impl InliningDyn for I { } } +pub trait InCtxDyn<'a, Ctx: Context<'a>>: InliningDyn { + fn icdnext_address(self) -> Result<(Address, Box), Vec>; + + fn idresolver(&self) -> Rc>; +} + +impl<'a, Ctx: Context<'a>, I: InCtx<'a, Ctx>> InCtxDyn<'a, Ctx> for I { + fn icdnext_address(self) -> Result<(Address, Box), Vec> { + let (address, i) = self.icnext_address(|slice| Vec::from(slice))?; + Ok((address, i.into())) + } + + fn idresolver(&self) -> Rc> { + self.iresolver() + } +} + pub type IParseResult<'a, Ctx, F, I> = Result<(Mtbl<'a, Ctx, F>, I), >::ParseError>;