Inlining for Demoted

This commit is contained in:
AF 2023-07-01 14:24:11 +00:00
parent 62b631d33d
commit f8a8620aff

View File

@ -1,3 +1,23 @@
use super::*; use super::*;
pub struct Demoted<'a: 'c, 'c, Ctx: Context<'a>>(pub(super) &'c mut dyn DeCtx<'a, Ctx>); pub struct Demoted<'a: 'c, 'c, Ctx: Context<'a>>(pub(super) &'c mut dyn DeCtx<'a, Ctx>);
impl<'a: 'c, 'c, Ctx: Context<'a>> Inlining for Demoted<'a, 'c, Ctx> {
fn iread_n<A, E>(
self,
n: usize,
ok: impl FnOnce(&[u8]) -> A,
err: impl FnOnce(&[u8]) -> E,
) -> Result<(A, Self), E> {
let (a, dectx) = self.0.iread_n(n, ok, err)?;
Ok((a, Self(dectx)))
}
fn iread_all<A>(self, ok: impl FnOnce(&[u8]) -> A) -> A {
self.0.iread_all(ok)
}
fn itell(&self) -> usize {
self.0.itell()
}
}