move ParseMode
to mode
This commit is contained in:
parent
c91e34b04a
commit
1b54cd4ae8
18
src/mode.rs
18
src/mode.rs
@ -103,3 +103,21 @@ pub trait Mode {
|
||||
ab2t: impl FnOnce(A, B) -> Result<AB, E>,
|
||||
) -> Self::ExtensionResult<AB, E>;
|
||||
}
|
||||
|
||||
/// Type that a [`Mode`] associated with it.
|
||||
pub trait ParseMode {
|
||||
/// Associated [`Mode`].
|
||||
type Mode: ?Sized + Mode;
|
||||
}
|
||||
|
||||
/// [`ParseMode`] equivalent of [`ParseSuccess`].
|
||||
pub type ParseSuccessP<F, A, I> = ParseSuccess<<F as ParseMode>::Mode, A, I>;
|
||||
|
||||
/// [`ParseMode`] equivalent of [`ExtensionResult`].
|
||||
pub type ExtensionResultP<F, A, E> = ExtensionResult<<F as ParseMode>::Mode, A, E>;
|
||||
|
||||
/// [`ParseMode`] equivalent of [`ExtensionSource`].
|
||||
pub type ExtensionSourceP<F, A> = ExtensionSource<<F as ParseMode>::Mode, A>;
|
||||
|
||||
/// [`ParseMode`] equivalent of [`ModeResult`].
|
||||
pub type ModeResultP<F, A, E, I> = ModeResult<<F as ParseMode>::Mode, A, E, I>;
|
||||
|
@ -23,6 +23,7 @@ use std::{error::Error, rc::Rc};
|
||||
|
||||
use crate::func::context::*;
|
||||
use crate::func::*;
|
||||
use crate::mode::*;
|
||||
|
||||
use self::addresses::{Addresses, InliningAddresses};
|
||||
pub use self::context::Context;
|
||||
@ -33,9 +34,8 @@ pub use self::hashing::{Hash, HASH_SIZE, HASH_ZEROS};
|
||||
pub use self::inctx::InCtx;
|
||||
pub use self::inlining::{Inlining, InliningExt, InliningResultExt};
|
||||
pub use self::modes::{
|
||||
CRegularFactory, ExtensionResultM, ExtensionResultP, ExtensionSourceM, ExtensionSourceP,
|
||||
FactoryModeParse, FactoryModeProxy, ImplMode, ModeResultM, ModeResultP, ParseMode,
|
||||
ParseModeExt, ParseSuccessP, RegularFactory, RegularMode, WithMode, WithParseMode,
|
||||
CRegularFactory, ExtensionResultM, ExtensionSourceM, FactoryModeParse, FactoryModeProxy,
|
||||
ImplMode, ModeResultM, ParseModeExt, RegularFactory, RegularMode, WithMode, WithParseMode,
|
||||
};
|
||||
pub use self::origin::{OFctr, Origin};
|
||||
pub use self::point::Point;
|
||||
|
@ -1,27 +1,7 @@
|
||||
use std::marker::PhantomData;
|
||||
|
||||
use crate::mode::*;
|
||||
|
||||
use super::*;
|
||||
|
||||
/// Type that a [`Mode`] associated with it.
|
||||
pub trait ParseMode {
|
||||
/// Associated [`Mode`].
|
||||
type Mode: ?Sized + Mode;
|
||||
}
|
||||
|
||||
/// [`ParseMode`] equivalent of [`ParseSuccess`].
|
||||
pub type ParseSuccessP<F, A, I> = ParseSuccess<<F as ParseMode>::Mode, A, I>;
|
||||
|
||||
/// [`ParseMode`] equivalent of [`ExtensionResult`].
|
||||
pub type ExtensionResultP<F, A, E> = ExtensionResult<<F as ParseMode>::Mode, A, E>;
|
||||
|
||||
/// [`ParseMode`] equivalent of [`ExtensionSource`].
|
||||
pub type ExtensionSourceP<F, A> = ExtensionSource<<F as ParseMode>::Mode, A>;
|
||||
|
||||
/// [`ParseMode`] equivalent of [`ParseResult`].
|
||||
pub type ModeResultP<F, A, E, I> = ModeResult<<F as ParseMode>::Mode, A, E, I>;
|
||||
|
||||
/// Extension trait for all [`ParseMode`] types, re-exporting [`Mode`] traits.
|
||||
pub trait ParseModeExt: ParseMode {
|
||||
/// [`Mode::bind`].
|
||||
|
@ -10,6 +10,7 @@ pub mod plain;
|
||||
|
||||
use std::marker::PhantomData;
|
||||
|
||||
use crate::mode::*;
|
||||
use crate::rcore::*;
|
||||
|
||||
use super::*;
|
||||
|
@ -1,6 +1,3 @@
|
||||
#[cfg(doc)]
|
||||
use crate::mode::*;
|
||||
|
||||
use super::*;
|
||||
|
||||
impl<A: AtomicModeParse> Atomic for A {
|
||||
|
@ -3,6 +3,7 @@
|
||||
use std::error::Error;
|
||||
use std::fmt::Display;
|
||||
|
||||
use crate::mode::*;
|
||||
use crate::rcore::*;
|
||||
use crate::rstd::inlining::{static_pair::*, *};
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
//! Basic implementation of a stack/linked list.
|
||||
|
||||
use crate::func::{context::*, controlflow::ControlFlow};
|
||||
use crate::mode::*;
|
||||
use crate::rcore::*;
|
||||
use crate::rstd::{inlining::*, nullable::*, point::*, *};
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
mod modes;
|
||||
pub mod static_pair;
|
||||
|
||||
use crate::mode::*;
|
||||
use crate::rcore::*;
|
||||
|
||||
use super::{
|
||||
|
Loading…
Reference in New Issue
Block a user