AtomicModeProxy

This commit is contained in:
AF 2023-07-29 20:30:24 +00:00
parent 560e363a63
commit e90aadf67c

View File

@ -29,15 +29,21 @@ pub type AExtensionSourceM<A> =
<<A as ParseMode>::Mode as Mode>::ExtensionSource<A, AParseError<A>>; <<A as ParseMode>::Mode as Mode>::ExtensionSource<A, AParseError<A>>;
pub trait AtomicModeParse: AtomicBase + ParseMode { pub trait AtomicModeParse: AtomicBase + ParseMode {
fn ma_deserialize<I: Inlining>(&self, inlining: I) -> AParseResultM<Self, I>; fn ma_deserialize<I: Inlining>(inlining: I) -> AParseResultM<Self, I>;
fn ma_extend( fn ma_extend(atomic: AExtensionSourceM<Self>, tail: &[u8]) -> AExtensionResultM<Self>;
&self,
mentionable: AExtensionSourceM<Self>,
tail: &[u8],
) -> AExtensionResultM<Self>;
fn ma_prepare(mentionable: Self) -> AExtensionSourceM<Self>; fn ma_prepare(self) -> AExtensionSourceM<Self>;
}
pub trait AtomicModeProxy {
type A: AtomicBase + ParseMode;
fn ma_deserialize<I: Inlining>(inlining: I) -> AParseResultM<Self::A, I>;
fn ma_extend(atomic: AExtensionSourceM<Self::A>, tail: &[u8]) -> AExtensionResultM<Self::A>;
fn ma_prepare(atomic: Self::A) -> AExtensionSourceM<Self::A>;
} }
pub trait RegularAtomic: AtomicBase + ImplMode<Mode = RegularMode> { pub trait RegularAtomic: AtomicBase + ImplMode<Mode = RegularMode> {