Inlining::iread_all

This commit is contained in:
AF 2023-06-28 16:44:18 +00:00
parent 3b5349de62
commit 2ff8e11317
2 changed files with 10 additions and 0 deletions

View File

@ -6,6 +6,8 @@ pub trait Inlining: Sized {
err: impl FnOnce(&[u8]) -> E, err: impl FnOnce(&[u8]) -> E,
) -> Result<(A, Self), E>; ) -> Result<(A, Self), E>;
fn iread_all<A>(self, ok: impl FnOnce(&[u8]) -> A) -> A;
fn itell(&self) -> usize; fn itell(&self) -> usize;
} }

View File

@ -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 { fn itell(&self) -> usize {
self.tell() 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 { fn itell(&self) -> usize {
self.dectx.tell() self.dectx.tell()
} }