From 702bff32761c3da80976702d4becbd726a78a6f2 Mon Sep 17 00:00:00 2001 From: timofey Date: Fri, 30 Jun 2023 22:16:45 +0000 Subject: [PATCH] move `Inlining for DeCtx` to `rcore` --- src/rcore/inctx.rs | 22 ++++++++++++++++++++++ src/rstd/inlining.rs | 22 ---------------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/rcore/inctx.rs b/src/rcore/inctx.rs index 3d2389e..231d94d 100644 --- a/src/rcore/inctx.rs +++ b/src/rcore/inctx.rs @@ -18,6 +18,28 @@ pub trait InCtx<'a, Ctx: Context<'a>>: Inlining { fn iresolver(&self) -> Rc>; } +impl<'a: 'c, 'c, Ctx: Context<'a>> Inlining for &'c mut dyn DeCtx<'a, Ctx> { + fn iread_n( + self, + n: usize, + ok: impl FnOnce(&[u8]) -> A, + err: impl FnOnce(&[u8]) -> E, + ) -> Result<(A, Self), E> { + match self.deserializer().iread_n(n, ok, err) { + Ok((a, _)) => Ok((a, self)), + Err(e) => Err(e), + } + } + + fn iread_all(self, ok: impl FnOnce(&[u8]) -> A) -> A { + self.deserializer().iread_all(ok) + } + + fn itell(&self) -> usize { + self.tell() + } +} + impl<'a: 'c, 'c, Ctx: Context<'a>> InCtx<'a, Ctx> for &'c mut dyn DeCtx<'a, Ctx> { fn icnext_address(self, err: impl FnOnce(&[u8]) -> E) -> Result<(Address, Self), E> { let (addresses, deserialiser, _) = self.adr(); diff --git a/src/rstd/inlining.rs b/src/rstd/inlining.rs index aaf1793..ec0ae24 100644 --- a/src/rstd/inlining.rs +++ b/src/rstd/inlining.rs @@ -34,28 +34,6 @@ impl Inlining for &mut D { } } -impl<'a: 'c, 'c, Ctx: Context<'a>> Inlining for &'c mut dyn DeCtx<'a, Ctx> { - fn iread_n( - self, - n: usize, - ok: impl FnOnce(&[u8]) -> A, - err: impl FnOnce(&[u8]) -> E, - ) -> Result<(A, Self), E> { - match self.deserializer().iread_n(n, ok, err) { - Ok((a, _)) => Ok((a, self)), - Err(e) => Err(e), - } - } - - fn iread_all(self, ok: impl FnOnce(&[u8]) -> A) -> A { - self.deserializer().iread_all(ok) - } - - fn itell(&self) -> usize { - self.tell() - } -} - pub type ResultDyn = Result<(A, I), Vec>; pub trait InCtxDyn<'a: 'c, 'c, Ctx: Context<'a>>: 'c {