move Inlining for DeCtx
to rcore
This commit is contained in:
parent
749268f438
commit
702bff3276
@ -18,6 +18,28 @@ pub trait InCtx<'a, Ctx: Context<'a>>: Inlining {
|
||||
fn iresolver(&self) -> Rc<dyn Resolver<'a, Ctx>>;
|
||||
}
|
||||
|
||||
impl<'a: 'c, 'c, Ctx: Context<'a>> Inlining for &'c mut dyn DeCtx<'a, Ctx> {
|
||||
fn iread_n<A, E>(
|
||||
self,
|
||||
n: usize,
|
||||
ok: impl FnOnce(&[u8]) -> A,
|
||||
err: impl FnOnce(&[u8]) -> E,
|
||||
) -> Result<(A, Self), E> {
|
||||
match self.deserializer().iread_n(n, ok, err) {
|
||||
Ok((a, _)) => Ok((a, self)),
|
||||
Err(e) => Err(e),
|
||||
}
|
||||
}
|
||||
|
||||
fn iread_all<A>(self, ok: impl FnOnce(&[u8]) -> A) -> A {
|
||||
self.deserializer().iread_all(ok)
|
||||
}
|
||||
|
||||
fn itell(&self) -> usize {
|
||||
self.tell()
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a: 'c, 'c, Ctx: Context<'a>> InCtx<'a, Ctx> for &'c mut dyn DeCtx<'a, Ctx> {
|
||||
fn icnext_address<E>(self, err: impl FnOnce(&[u8]) -> E) -> Result<(Address, Self), E> {
|
||||
let (addresses, deserialiser, _) = self.adr();
|
||||
|
@ -34,28 +34,6 @@ impl<D: ?Sized + Deserializer> Inlining for &mut D {
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a: 'c, 'c, Ctx: Context<'a>> Inlining for &'c mut dyn DeCtx<'a, Ctx> {
|
||||
fn iread_n<A, E>(
|
||||
self,
|
||||
n: usize,
|
||||
ok: impl FnOnce(&[u8]) -> A,
|
||||
err: impl FnOnce(&[u8]) -> E,
|
||||
) -> Result<(A, Self), E> {
|
||||
match self.deserializer().iread_n(n, ok, err) {
|
||||
Ok((a, _)) => Ok((a, self)),
|
||||
Err(e) => Err(e),
|
||||
}
|
||||
}
|
||||
|
||||
fn iread_all<A>(self, ok: impl FnOnce(&[u8]) -> A) -> A {
|
||||
self.deserializer().iread_all(ok)
|
||||
}
|
||||
|
||||
fn itell(&self) -> usize {
|
||||
self.tell()
|
||||
}
|
||||
}
|
||||
|
||||
pub type ResultDyn<A, I> = Result<(A, I), Vec<u8>>;
|
||||
|
||||
pub trait InCtxDyn<'a: 'c, 'c, Ctx: Context<'a>>: 'c {
|
||||
|
Loading…
Reference in New Issue
Block a user