diff --git a/src/rcore/demoted.rs b/src/rcore/demoted.rs
index 2d80e7e..dd2f941 100644
--- a/src/rcore/demoted.rs
+++ b/src/rcore/demoted.rs
@@ -1,3 +1,23 @@
use super::*;
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(
+ 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(self, ok: impl FnOnce(&[u8]) -> A) -> A {
+ self.0.iread_all(ok)
+ }
+
+ fn itell(&self) -> usize {
+ self.0.itell()
+ }
+}