AtomicModeParse
This commit is contained in:
parent
7c64e38954
commit
560e363a63
@ -14,7 +14,10 @@ use crate::rcore::*;
|
|||||||
|
|
||||||
use super::*;
|
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;
|
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> {
|
pub trait RegularAtomic: AtomicBase + ImplMode<Mode = RegularMode> {
|
||||||
fn ra_deserialize(inlining: impl Inlining) -> AParseResult<Self>;
|
fn ra_deserialize(inlining: impl Inlining) -> AParseResult<Self>;
|
||||||
fn ra_extend(self, tail: &[u8]) -> AParseResult<Self>;
|
fn ra_extend(self, tail: &[u8]) -> AParseResult<Self>;
|
||||||
|
Loading…
Reference in New Issue
Block a user