AtomicModeParse

This commit is contained in:
AF 2023-07-29 20:27:26 +00:00
parent 7c64e38954
commit 560e363a63
2 changed files with 24 additions and 1 deletions

View File

@ -14,7 +14,10 @@ use crate::rcore::*;
use super::*;
pub use self::modes::{AtomicProxy, RegularAtomic};
pub use self::modes::{
AExtensionResultM, AExtensionSourceM, AParseResultM, AtomicModeParse, AtomicProxy,
RegularAtomic,
};
pub type AParseError<A> = <A as AtomicBase>::AParseError;

View File

@ -20,6 +20,26 @@ where
}
}
pub type AParseResultM<A, I> = <<A as ParseMode>::Mode as Mode>::ParseResult<A, AParseError<A>, I>;
pub type AExtensionResultM<A> =
<<A as ParseMode>::Mode as Mode>::ExtensionResult<A, AParseError<A>>;
pub type AExtensionSourceM<A> =
<<A as ParseMode>::Mode as Mode>::ExtensionSource<A, AParseError<A>>;
pub trait AtomicModeParse: AtomicBase + ParseMode {
fn ma_deserialize<I: Inlining>(&self, inlining: I) -> AParseResultM<Self, I>;
fn ma_extend(
&self,
mentionable: AExtensionSourceM<Self>,
tail: &[u8],
) -> AExtensionResultM<Self>;
fn ma_prepare(mentionable: Self) -> AExtensionSourceM<Self>;
}
pub trait RegularAtomic: AtomicBase + ImplMode<Mode = RegularMode> {
fn ra_deserialize(inlining: impl Inlining) -> AParseResult<Self>;
fn ra_extend(self, tail: &[u8]) -> AParseResult<Self>;