From 678cb199efd6bd5fa941e94d712de66cad40ac81 Mon Sep 17 00:00:00 2001 From: timofey Date: Sat, 29 Jul 2023 21:06:01 +0000 Subject: [PATCH] delete `AoProxy` --- src/rstd/atomic/atomic_object.rs | 41 ++++---------------------------- src/rstd/inlining.rs | 11 +-------- 2 files changed, 6 insertions(+), 46 deletions(-) diff --git a/src/rstd/atomic/atomic_object.rs b/src/rstd/atomic/atomic_object.rs index adf6d1a..e4bf6f5 100644 --- a/src/rstd/atomic/atomic_object.rs +++ b/src/rstd/atomic/atomic_object.rs @@ -36,25 +36,13 @@ impl Serializable for AtomicObject { } } -pub trait AoProxy<'a, Ctx: Context<'a>> { - type A; - - type Mtbl: MentionableBase<'a, Ctx, Fctr = Self::Fctr> + MentionableTop<'a, Ctx>; - type Fctr: FactoryBase<'a, Ctx, Mtbl = Self::Mtbl>; - - fn factory() -> Self::Fctr; - fn wrap(a: Self::A) -> Self::Mtbl; -} - impl<'a, Ctx: Context<'a>, A: AtomicBase + WithParseMode> MentionableBase<'a, Ctx> for AtomicObject -where - A::WithMode: AoProxy<'a, Ctx, Mtbl = Self, A = A>, { - type Fctr = >::Fctr; + type Fctr = AtomicFactory; fn factory(&self) -> Self::Fctr { - >::factory() + AtomicFactory::new() } } @@ -83,11 +71,10 @@ impl Clone for AtomicFactory { } } -impl<'a, Ctx: Context<'a>, A: AtomicBase + WithParseMode> FactoryBase<'a, Ctx> for AtomicFactory -where - A::WithMode: AoProxy<'a, Ctx, Fctr = Self, A = A>, +impl<'a, Ctx: Context<'a>, A: AtomicBase + WithParseMode> FactoryBase<'a, Ctx> + for AtomicFactory { - type Mtbl = >::Mtbl; + type Mtbl = AtomicObject; type ParseError = A::AParseError; } @@ -96,24 +83,6 @@ impl ImplMode for AtomicFactory { type Mode = A::Mode; } -impl<'a, Ctx: Context<'a>, A: RegularAtomic + ImplMode> AoProxy<'a, Ctx> - for WithMode -{ - type A = A; - - type Mtbl = AtomicObject; - - type Fctr = AtomicFactory; - - fn factory() -> Self::Fctr { - AtomicFactory::new() - } - - fn wrap(a: Self::A) -> Self::Mtbl { - a.into() - } -} - impl<'a, Ctx: Context<'a>, A: RegularAtomic + ImplMode> RegularFactory<'a, Ctx> for AtomicFactory { diff --git a/src/rstd/inlining.rs b/src/rstd/inlining.rs index 255c5aa..24e9409 100644 --- a/src/rstd/inlining.rs +++ b/src/rstd/inlining.rs @@ -86,8 +86,6 @@ pub trait ConstSizeAtomic: InliningAtomic { impl<'a, Ctx: Context<'a>, A: ImplMode + InliningAtomic> InliningFactory<'a, Ctx> for AtomicFactory -where - ::WithMode: AoProxy<'a, Ctx, Fctr = Self, A = A>, { fn extension_error(&self, tail: &[u8]) -> Self::ParseError { A::a_extension_error(tail) @@ -95,17 +93,12 @@ where fn ideserialize>(&self, inctx: I) -> IParseResult<'a, Ctx, Self, I> { let (a, inctx) = A::a_ideserialize(inctx)?; - Ok(( - <::WithMode as AoProxy<'a, Ctx>>::wrap(a), - inctx, - )) + Ok((a.into(), inctx)) } } impl<'a, Ctx: Context<'a>, A: ImplMode + ConstSizeAtomic> FixedSizeFactory<'a, Ctx> for AtomicFactory -where - ::WithMode: AoProxy<'a, Ctx, Fctr = Self, A = A>, { fn size(&self) -> usize { A::SIZE @@ -114,8 +107,6 @@ where impl<'a, Ctx: Context<'a>, A: ImplMode + ConstSizeAtomic> ConstSizeFactory<'a, Ctx> for AtomicFactory -where - ::WithMode: AoProxy<'a, Ctx, Fctr = Self, A = A>, { const SIZE: usize = A::SIZE; }