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()
     }