AtomicModeParse
This commit is contained in:
parent
7c64e38954
commit
560e363a63
@ -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;
|
||||
|
||||
|
@ -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>;
|
||||
|
Loading…
Reference in New Issue
Block a user