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(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 Inlining for &mut D { } } + fn iread_all(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(self, ok: impl FnOnce(&[u8]) -> A) -> A { + self.dectx.deserializer().iread_all(ok) + } + fn itell(&self) -> usize { self.dectx.tell() }