diff --git a/src/rstd/inlining.rs b/src/rstd/inlining.rs index d6e8a13..4db2515 100644 --- a/src/rstd/inlining.rs +++ b/src/rstd/inlining.rs @@ -46,24 +46,13 @@ impl InlineableDeserializer for &mut D { } } -pub trait InlineableDeCtx<'a, Ctx: Context<'a>>: Sized { - type D: InlineableDeserializer; - - fn iread_n( - self, - n: usize, - ok: impl FnOnce(&[u8]) -> A, - err: impl FnOnce(&[u8]) -> E, - ) -> Result<(A, Self), E>; -} +pub trait InlineableDeCtx<'a, Ctx: Context<'a>>: InlineableDeserializer {} struct InlineableDeCtxT<'a: 'c, 'c, Ctx: Context<'a>> { dectx: &'c mut dyn DeCtx<'a, Ctx>, } -impl<'a: 'c, 'c, Ctx: Context<'a>> InlineableDeCtx<'a, Ctx> for InlineableDeCtxT<'a, 'c, Ctx> { - type D = &'c mut dyn Deserializer; - +impl<'a: 'c, 'c, Ctx: Context<'a>> InlineableDeserializer for InlineableDeCtxT<'a, 'c, Ctx> { fn iread_n( self, n: usize, @@ -77,6 +66,8 @@ impl<'a: 'c, 'c, Ctx: Context<'a>> InlineableDeCtx<'a, Ctx> for InlineableDeCtxT } } +impl<'a: 'c, 'c, Ctx: Context<'a>> InlineableDeCtx<'a, Ctx> for InlineableDeCtxT<'a, 'c, Ctx> {} + pub type IParseResult<'a, Ctx, F, I> = Result<(Mtbl<'a, Ctx, F>, I), >::ParseError>;