From 2ff8e1131764f470dbe818aea79c4d8ab4a1eed8 Mon Sep 17 00:00:00 2001 From: timofey <tim@ongoteam.yaconnect.com> Date: Wed, 28 Jun 2023 16:44:18 +0000 Subject: [PATCH] `Inlining::iread_all` --- src/rcore/inlining.rs | 2 ++ src/rstd/inlining.rs | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/src/rcore/inlining.rs b/src/rcore/inlining.rs index 7fd57ea..8c51f43 100644 --- a/src/rcore/inlining.rs +++ b/src/rcore/inlining.rs @@ -6,6 +6,8 @@ pub trait Inlining: Sized { err: impl FnOnce(&[u8]) -> E, ) -> Result<(A, Self), E>; + fn iread_all<A>(self, ok: impl FnOnce(&[u8]) -> A) -> A; + fn itell(&self) -> usize; } diff --git a/src/rstd/inlining.rs b/src/rstd/inlining.rs index 0b42caf..8d82b65 100644 --- a/src/rstd/inlining.rs +++ b/src/rstd/inlining.rs @@ -25,6 +25,10 @@ impl<D: ?Sized + Deserializer> Inlining for &mut D { } } + fn iread_all<A>(self, ok: impl FnOnce(&[u8]) -> A) -> A { + ok(self.read_all()) + } + fn itell(&self) -> usize { self.tell() } @@ -49,6 +53,10 @@ impl<'a: 'c, 'c, Ctx: Context<'a>> Inlining for InCtxT<'a, 'c, Ctx> { } } + fn iread_all<A>(self, ok: impl FnOnce(&[u8]) -> A) -> A { + self.dectx.deserializer().iread_all(ok) + } + fn itell(&self) -> usize { self.dectx.tell() }