From 57bb3a5d4a4e1a032190ccb29b10baef4b4e2c6b Mon Sep 17 00:00:00 2001 From: timofey Date: Sun, 30 Jul 2023 14:48:09 +0000 Subject: [PATCH] use `Mode` re-exports more --- src/rcore/modes.rs | 47 +++++++++++++++++----------------------- src/rstd/atomic/modes.rs | 7 +++--- 2 files changed, 23 insertions(+), 31 deletions(-) diff --git a/src/rcore/modes.rs b/src/rcore/modes.rs index 7ef38d2..bac533b 100644 --- a/src/rcore/modes.rs +++ b/src/rcore/modes.rs @@ -127,68 +127,66 @@ pub type ModeResultP = ModeResult<::Mode, A, E, I>; pub trait ParseModeExt: ParseMode { /// [`Mode::bind`]. fn bind( - s: ::ParseSuccess, + s: ParseSuccessP, f: impl FnOnce(A0) -> Result, - ) -> ModeResult { + ) -> ModeResultP { ::bind(s, f) } /// [`Mode::map`]. fn map( - s: ::ParseSuccess, + s: ParseSuccessP, f: impl FnOnce(A0) -> A1, - ) -> ::ParseSuccess { + ) -> ParseSuccessP { ::map(s, f) } /// [`Mode::seal`]. - fn seal(s: ::ParseSuccess) -> A { + fn seal(s: ParseSuccessP) -> A { ::seal(s) } /// [`Mode::xmap_err`]. fn xmap_err( - result: ::ExtensionResult, + result: ExtensionResultP, f: impl FnOnce(E0) -> E1, - ) -> ::ExtensionResult { + ) -> ExtensionResultP { ::xmap_err(result, f) } /// [`Mode::xbind`]. fn xbind( - result: ::ExtensionResult, + result: ExtensionResultP, f: impl FnOnce(A0) -> Result, - ) -> ::ExtensionResult { + ) -> ExtensionResultP { ::xbind(result, f) } /// [`Mode::xseal`]. - fn xseal(result: ::ExtensionResult) -> Result { + fn xseal(result: ExtensionResultP) -> Result { ::xseal(result) } /// [`Mode::smap`]. fn smap( - source: ::ExtensionSource, + source: ExtensionSourceP, f: impl FnOnce(A0) -> A1, - ) -> ::ExtensionSource { + ) -> ExtensionSourceP { ::smap(source, f) } /// [`Mode::prepare`]. - fn prepare(a: A) -> ::ExtensionSource { + fn prepare(a: A) -> ExtensionSourceP { ::prepare(a) } /// [`Mode::xsbind`]. fn xsbind( - ab: ::ExtensionSource, + ab: ExtensionSourceP, t2ab: impl FnOnce(AB) -> (A, B), - ce: impl FnOnce( - ::ExtensionSource, - ) -> ::ExtensionResult, + ce: impl FnOnce(ExtensionSourceP) -> ExtensionResultP, ab2t: impl FnOnce(A, B) -> Result, - ) -> ::ExtensionResult { + ) -> ExtensionResultP { ::xsbind(ab, t2ab, ce, ab2t) } } @@ -219,10 +217,7 @@ impl<'a, Ctx: Context<'a>, F: FactoryModeParse<'a, Ctx>> FactoryParse<'a, Ctx> f } fn extend(&self, mentionable: Self::Mtbl, tail: &[u8]) -> ParseResult<'a, Ctx, Self> { - <::Mode as Mode>::xseal(self.mextend( - <::Mode as Mode>::prepare(mentionable), - tail, - )) + Self::xseal(self.mextend(Self::prepare(mentionable), tail)) } } @@ -233,14 +228,12 @@ where type _Mtbl = Self::Mtbl; } -pub type ParseResultM<'a, Ctx, F, I> = - ModeResult<::Mode, Mtbl<'a, Ctx, F>, ParseError<'a, Ctx, F>, I>; +pub type ParseResultM<'a, Ctx, F, I> = ModeResultP, ParseError<'a, Ctx, F>, I>; pub type ExtensionResultM<'a, Ctx, F> = - <::Mode as Mode>::ExtensionResult, ParseError<'a, Ctx, F>>; + ExtensionResultP, ParseError<'a, Ctx, F>>; -pub type ExtensionSourceM<'a, Ctx, F> = - <::Mode as Mode>::ExtensionSource>; +pub type ExtensionSourceM<'a, Ctx, F> = ExtensionSourceP>; pub trait FactoryModeParse<'a, Ctx: Context<'a>>: FactoryBase<'a, Ctx> + ParseMode { fn mdeserialize>(&self, inctx: I) -> ParseResultM<'a, Ctx, Self, I>; diff --git a/src/rstd/atomic/modes.rs b/src/rstd/atomic/modes.rs index 20af5e4..32c2077 100644 --- a/src/rstd/atomic/modes.rs +++ b/src/rstd/atomic/modes.rs @@ -10,12 +10,11 @@ impl Atomic for A { } } -pub type AParseResultM = ModeResult<::Mode, A, AParseError, I>; +pub type AParseResultM = ModeResultP, I>; -pub type AExtensionResultM = - <::Mode as Mode>::ExtensionResult>; +pub type AExtensionResultM = ExtensionResultP>; -pub type AExtensionSourceM = <::Mode as Mode>::ExtensionSource; +pub type AExtensionSourceM = ExtensionSourceP; pub trait AtomicModeParse: AtomicBase + ParseMode { fn ma_deserialize(inlining: I) -> AParseResultM;