ParseSealed
This commit is contained in:
parent
53d7a104fc
commit
a23fc1720b
@ -29,6 +29,8 @@ pub use self::stream::{Stream, StreamExt, StreamResultExt};
|
||||
/// See [`ModeResult`].
|
||||
pub type ParseSuccess<M, A, I> = <M as Mode>::ParseSuccess<A, I>;
|
||||
|
||||
pub type ParseSealed<M, A> = <M as Mode>::ParseSealed<A>;
|
||||
|
||||
/// [`Mode`] equivalent of [`ParseResult`] for extension.
|
||||
///
|
||||
/// [`ParseResult`]: crate::rcore::ParseResult
|
||||
@ -59,6 +61,9 @@ pub trait Mode {
|
||||
/// (`I`, usually [`Stream`]).
|
||||
type ParseSuccess<A, I>;
|
||||
|
||||
/// Parse success with parser discarded.
|
||||
type ParseSealed<A>;
|
||||
|
||||
/// Result of extending the value, failing sometimes or always.
|
||||
type ExtensionResult<A, E>;
|
||||
|
||||
|
@ -10,6 +10,9 @@ impl Mode for InliningMode {
|
||||
/// Keeps the parser.
|
||||
type ParseSuccess<A, I> = (A, I);
|
||||
|
||||
/// Keep value as is.
|
||||
type ParseSealed<A> = A;
|
||||
|
||||
/// Always fails.
|
||||
type ExtensionResult<A, E> = E;
|
||||
|
||||
|
@ -10,6 +10,9 @@ impl Mode for RegularMode {
|
||||
/// Discards the parser.
|
||||
type ParseSuccess<A, I> = A;
|
||||
|
||||
/// Keep value as is.
|
||||
type ParseSealed<A> = A;
|
||||
|
||||
/// Tries to extend the value.
|
||||
type ExtensionResult<A, E> = Result<A, E>;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user