delete FactoryProxy

This commit is contained in:
AF 2023-07-29 19:31:44 +00:00
parent 486d7e7af8
commit 3749c30512
4 changed files with 3 additions and 50 deletions

View File

@ -33,8 +33,8 @@ pub use self::hashing::{Hash, HASH_SIZE, HASH_ZEROS};
pub use self::inctx::InCtx; pub use self::inctx::InCtx;
pub use self::inlining::{Inlining, InliningExt, InliningResultExt}; pub use self::inlining::{Inlining, InliningExt, InliningResultExt};
pub use self::modes::{ pub use self::modes::{
ExtensionResultM, FactoryModeParse, FactoryModeProxy, FactoryProxy, Mode, ParseMode, ExtensionResultM, FactoryModeParse, FactoryModeProxy, Mode, ParseMode, ParseResultM,
ParseResultM, RegularFactory, RegularMode, WithMode, WithParseMode, RegularFactory, RegularMode, WithMode, WithParseMode,
}; };
pub use self::origin::{OFctr, Origin}; pub use self::origin::{OFctr, Origin};
pub use self::point::Point; pub use self::point::Point;

View File

@ -46,17 +46,6 @@ impl<T: ?Sized + ParseMode> WithParseMode for T {
pub struct WithMode<T: ?Sized, M: ?Sized>(PhantomData<M>, T); pub struct WithMode<T: ?Sized, M: ?Sized>(PhantomData<M>, T);
pub trait FactoryProxy<'a, Ctx: Context<'a>> {
type F: FactoryBase<'a, Ctx> + ParseMode;
fn pdeserialize(f: &Self::F, inctx: impl InCtx<'a, Ctx>) -> ParseResult<'a, Ctx, Self::F>;
fn pextend(
f: &Self::F,
mentionable: Mtbl<'a, Ctx, Self::F>,
tail: &[u8],
) -> ParseResult<'a, Ctx, Self::F>;
}
impl<'a, Ctx: Context<'a>, F: FactoryModeParse<'a, Ctx>> FactoryParse<'a, Ctx> for F { impl<'a, Ctx: Context<'a>, F: FactoryModeParse<'a, Ctx>> FactoryParse<'a, Ctx> for F {
fn deserialize(&self, inctx: impl InCtx<'a, Ctx>) -> ParseResult<'a, Ctx, Self> { fn deserialize(&self, inctx: impl InCtx<'a, Ctx>) -> ParseResult<'a, Ctx, Self> {
<<Self as ParseMode>::Mode as Mode>::seal(self.mdeserialize(inctx)) <<Self as ParseMode>::Mode as Mode>::seal(self.mdeserialize(inctx))
@ -161,24 +150,6 @@ pub trait RegularFactory<'a, Ctx: Context<'a>>:
fn rextend(&self, mentionable: Self::Mtbl, tail: &[u8]) -> ParseResult<'a, Ctx, Self>; fn rextend(&self, mentionable: Self::Mtbl, tail: &[u8]) -> ParseResult<'a, Ctx, Self>;
} }
impl<'a, Ctx: Context<'a>, F: RegularFactory<'a, Ctx>> FactoryProxy<'a, Ctx>
for WithMode<F, RegularMode>
{
type F = F;
fn pdeserialize(f: &Self::F, inctx: impl InCtx<'a, Ctx>) -> ParseResult<'a, Ctx, Self::F> {
f.rdeserialize(inctx)
}
fn pextend(
f: &Self::F,
mentionable: Mtbl<'a, Ctx, Self::F>,
tail: &[u8],
) -> ParseResult<'a, Ctx, Self::F> {
f.rextend(mentionable, tail)
}
}
impl<'a, Ctx: Context<'a>, F: RegularFactory<'a, Ctx>> FactoryModeProxy<'a, Ctx> impl<'a, Ctx: Context<'a>, F: RegularFactory<'a, Ctx>> FactoryModeProxy<'a, Ctx>
for WithMode<F, RegularMode> for WithMode<F, RegularMode>
{ {

View File

@ -4,7 +4,7 @@ pub trait ExternalPoints<'a, Ctx: Context<'a>, T> {
fn ex_points_typed(mentionable: &T, points: &mut impl PointsVisitor<'a, Ctx>); fn ex_points_typed(mentionable: &T, points: &mut impl PointsVisitor<'a, Ctx>);
} }
pub trait ExternalPointsProxy<'a, Ctx: Context<'a>, T>: FactoryProxy<'a, Ctx> { pub trait ExternalPointsProxy<'a, Ctx: Context<'a>, T>: FactoryModeProxy<'a, Ctx> {
fn exp_points_typed(mentionable: &T, points: &mut impl PointsVisitor<'a, Ctx>); fn exp_points_typed(mentionable: &T, points: &mut impl PointsVisitor<'a, Ctx>);
} }

View File

@ -46,24 +46,6 @@ impl Mode for InliningMode {
} }
} }
impl<'a, Ctx: Context<'a>, F: InlineableFactory<'a, Ctx>> FactoryProxy<'a, Ctx>
for WithMode<F, InliningMode>
{
type F = F;
fn pdeserialize(f: &Self::F, inctx: impl InCtx<'a, Ctx>) -> ParseResult<'a, Ctx, Self::F> {
f.ideserialize(inctx).seal()
}
fn pextend(
f: &Self::F,
_mentionable: Mtbl<'a, Ctx, Self::F>,
tail: &[u8],
) -> ParseResult<'a, Ctx, Self::F> {
Err(f.extension_error(tail))
}
}
impl<'a, Ctx: Context<'a>, F: InlineableFactory<'a, Ctx>> FactoryModeProxy<'a, Ctx> impl<'a, Ctx: Context<'a>, F: InlineableFactory<'a, Ctx>> FactoryModeProxy<'a, Ctx>
for WithMode<F, InliningMode> for WithMode<F, InliningMode>
{ {