move ImplMode to mode

This commit is contained in:
AF 2023-07-30 19:00:44 +00:00
parent 753422efbc
commit f07f0f3607
7 changed files with 14 additions and 9 deletions

View File

@ -191,3 +191,12 @@ pub trait ParseModeExt: ParseMode {
} }
impl<F: ParseMode> ParseModeExt for F {} impl<F: ParseMode> ParseModeExt for F {}
/// For auto-implementing [`FactoryParse`] and [`Atomic`].
///
/// [`FactoryParse`]: crate::rcore::FactoryParse
/// [`Atomic`]: crate::rstd::atomic::Atomic
pub trait ImplMode {
/// Same as [`ParseMode::Mode`]
type Mode: ?Sized + Mode;
}

View File

@ -35,7 +35,7 @@ pub use self::inctx::InCtx;
pub use self::inlining::{Inlining, InliningExt, InliningResultExt}; pub use self::inlining::{Inlining, InliningExt, InliningResultExt};
pub use self::modes::{ pub use self::modes::{
CRegularFactory, ExtensionResultM, ExtensionSourceM, FactoryModeParse, FactoryModeProxy, CRegularFactory, ExtensionResultM, ExtensionSourceM, FactoryModeParse, FactoryModeProxy,
ImplMode, ModeResultM, RegularFactory, RegularMode, WithMode, WithParseMode, ModeResultM, RegularFactory, RegularMode, WithMode, WithParseMode,
}; };
pub use self::origin::{OFctr, Origin}; pub use self::origin::{OFctr, Origin};
pub use self::point::Point; pub use self::point::Point;

View File

@ -2,14 +2,6 @@ use std::marker::PhantomData;
use super::*; use super::*;
/// For auto-implementing [`FactoryParse`] and [`Atomic`].
///
/// [`Atomic`]: crate::rstd::atomic::Atomic
pub trait ImplMode {
/// Same as [`ParseMode::Mode`]
type Mode: ?Sized + Mode;
}
/// Used with [`WithMode`] for linking [`ImplMode`] to [`FactoryParse`] and [`Atomic`]. /// Used with [`WithMode`] for linking [`ImplMode`] to [`FactoryParse`] and [`Atomic`].
/// ///
/// [`Atomic`]: crate::rstd::atomic::Atomic /// [`Atomic`]: crate::rstd::atomic::Atomic

View File

@ -4,6 +4,7 @@ use std::{error::Error, fmt::Display};
use crate::{ use crate::{
flow::binary::*, flow::binary::*,
mode::*,
rcore::*, rcore::*,
rstd::{atomic::au64::*, inlining::*, nullable::*, point::*}, rstd::{atomic::au64::*, inlining::*, nullable::*, point::*},
}; };

View File

@ -1,6 +1,7 @@
//! This module introduces [`Option`]-like concepts into RADN typesystem using [`Nullable`]. //! This module introduces [`Option`]-like concepts into RADN typesystem using [`Nullable`].
use crate::func::context::*; use crate::func::context::*;
use crate::mode::*;
use crate::rcore::*; use crate::rcore::*;
use super::{inlining::*, point::*, *}; use super::{inlining::*, point::*, *};

View File

@ -2,6 +2,7 @@
use std::{error::Error, fmt::Display}; use std::{error::Error, fmt::Display};
use crate::mode::*;
use crate::rcore::*; use crate::rcore::*;
use crate::rstd::inlining::*; use crate::rstd::inlining::*;

View File

@ -3,6 +3,7 @@
//! [`rcore`]: crate::rcore //! [`rcore`]: crate::rcore
use super::{cast::CastError, wrapped_origin::*, *}; use super::{cast::CastError, wrapped_origin::*, *};
use crate::mode::*;
type TypelessSerialize<'a> = dyn 'a + Fn(&mut dyn Serializer); type TypelessSerialize<'a> = dyn 'a + Fn(&mut dyn Serializer);