diff --git a/src/rcore/inlining.rs b/src/rcore/inlining.rs index 8c51f43..2e7c643 100644 --- a/src/rcore/inlining.rs +++ b/src/rcore/inlining.rs @@ -1,3 +1,5 @@ +use super::*; + pub trait Inlining: Sized { fn iread_n( self, @@ -25,3 +27,27 @@ pub trait InliningExt: Inlining { } impl InliningExt for D {} + +impl Inlining for &mut D { + fn iread_n( + self, + n: usize, + ok: impl FnOnce(&[u8]) -> A, + err: impl FnOnce(&[u8]) -> E, + ) -> Result<(A, Self), E> { + let slice = self.read_n(n); + if slice.len() == n { + Ok((ok(slice), self)) + } else { + Err(err(slice)) + } + } + + fn iread_all(self, ok: impl FnOnce(&[u8]) -> A) -> A { + ok(self.read_all()) + } + + fn itell(&self) -> usize { + self.tell() + } +} diff --git a/src/rstd/inlining.rs b/src/rstd/inlining.rs index ec0ae24..be9679f 100644 --- a/src/rstd/inlining.rs +++ b/src/rstd/inlining.rs @@ -10,30 +10,6 @@ use super::{ *, }; -impl Inlining for &mut D { - fn iread_n( - self, - n: usize, - ok: impl FnOnce(&[u8]) -> A, - err: impl FnOnce(&[u8]) -> E, - ) -> Result<(A, Self), E> { - let slice = self.read_n(n); - if slice.len() == n { - Ok((ok(slice), self)) - } else { - Err(err(slice)) - } - } - - fn iread_all(self, ok: impl FnOnce(&[u8]) -> A) -> A { - ok(self.read_all()) - } - - fn itell(&self) -> usize { - self.tell() - } -} - pub type ResultDyn = Result<(A, I), Vec>; pub trait InCtxDyn<'a: 'c, 'c, Ctx: Context<'a>>: 'c {