_parse_slice generic over factory

This commit is contained in:
AF 2023-07-29 14:13:48 +00:00
parent f29ea3dbc8
commit f7290cdcfc

View File

@ -55,11 +55,11 @@ pub(super) trait InliningAddresses<E>: Inlining {
impl<E, D: ?Sized + Inlining> InliningAddresses<E> for D {} impl<E, D: ?Sized + Inlining> InliningAddresses<E> for D {}
fn _parse_slice<'a, Ctx: Context<'a>, A: Mentionable<'a, Ctx>>( fn _parse_slice<'a, Ctx: Context<'a>, F: Factory<'a, Ctx>>(
factory: &A::Fctr, factory: &F,
slice: &[u8], slice: &[u8],
resolver: &Rc<dyn Resolver<'a, Ctx>>, resolver: &Rc<dyn Resolver<'a, Ctx>>,
) -> ParseResult<'a, Ctx, A::Fctr> { ) -> ParseResult<'a, Ctx, F> {
let mut deserializer = SliceDeserializer::from(slice); let mut deserializer = SliceDeserializer::from(slice);
let mentionable = factory.deserialize(&mut DeCtxT { let mentionable = factory.deserialize(&mut DeCtxT {
deserializer: &mut deserializer, deserializer: &mut deserializer,
@ -80,7 +80,7 @@ impl<'a, Ctx: Context<'a>, F: Factory<'a, Ctx>> FactoryExt<'a, Ctx> for F {
slice: &[u8], slice: &[u8],
resolver: &Rc<dyn Resolver<'a, Ctx>>, resolver: &Rc<dyn Resolver<'a, Ctx>>,
) -> ParseResult<'a, Ctx, Self> { ) -> ParseResult<'a, Ctx, Self> {
_parse_slice::<Ctx, F::Mtbl>(self, slice, resolver) _parse_slice::<Ctx, _>(self, slice, resolver)
} }
} }