diff --git a/src/atomic.rs b/src/atomic.rs
index 8b13789..7f6fc4d 100644
--- a/src/atomic.rs
+++ b/src/atomic.rs
@@ -1 +1,38 @@
+use std::error::Error;
+use crate::mode::*;
+
+/// [`Atomic`] equivalent of [`ParseError`].
+///
+/// [`ParseError`]: crate::rcore::ParseError
+pub type AParseError = ::AParseError;
+
+pub type AParseResult = Result>;
+
+/// [`Atomic`] base.
+pub trait AtomicBase: 'static + Send + Sync + Send + Clone + Serializable {
+ /// Equivalent of [`FactoryBase::ParseError`].
+ ///
+ /// [`FactoryBase::ParseError`]: crate::rcore::FactoryBase::ParseError
+ type AParseError: Error;
+}
+
+/// This trait combines functionality of [`Mentionable`] and [`Factory`],
+/// while limiting [`MentionableTop::points_typed`] (and corresponding [`MentionableTop::topology`])
+/// to an empty sequence.
+///
+/// [`Mentionable`]: crate::rcore::Mentionable
+/// [`Factory`]: crate::rcore::Factory
+/// [`MentionableTop::points_typed`]: crate::rcore::MentionableTop::points_typed
+/// [`MentionableTop::topology`]: crate::rcore::MentionableTop::topology
+pub trait Atomic: AtomicBase + ParseMode {
+ /// Static equivalent of [`FactoryParse::deserialize`].
+ ///
+ /// [`FactoryParse::deserialize`]: crate::rcore::FactoryParse::deserialize
+ fn a_deserialize(stream: impl Stream) -> AParseResult;
+
+ /// Static equivalent of [`FactoryParse::extend`].
+ ///
+ /// [`FactoryParse::extend`]: crate::rcore::FactoryParse::extend
+ fn a_extend(self, tail: &[u8]) -> AParseResult;
+}
diff --git a/src/mode.rs b/src/mode.rs
index af48d66..5b71fda 100644
--- a/src/mode.rs
+++ b/src/mode.rs
@@ -205,7 +205,7 @@ impl ParseModeExt for F {}
/// For auto-implementing [`FactoryParse`] and [`Atomic`].
///
/// [`FactoryParse`]: crate::rcore::FactoryParse
-/// [`Atomic`]: crate::rstd::atomic::Atomic
+/// [`Atomic`]: crate::atomic::Atomic
pub trait ImplMode {
/// Same as [`ParseMode::Mode`]
type Mode: ?Sized + Mode;
@@ -214,7 +214,7 @@ pub trait ImplMode {
/// Used with [`WithMode`] for linking [`ImplMode`] to [`FactoryParse`] and [`Atomic`].
///
/// [`FactoryParse`]: crate::rcore::FactoryParse
-/// [`Atomic`]: crate::rstd::atomic::Atomic
+/// [`Atomic`]: crate::atomic::Atomic
pub trait WithParseMode: ImplMode {
/// [`WithMode`] implementing [`FactoryModeProxy`] or [`AtomicModeProxy`].
///
diff --git a/src/rstd/atomic.rs b/src/rstd/atomic.rs
index 68b6232..e124183 100644
--- a/src/rstd/atomic.rs
+++ b/src/rstd/atomic.rs
@@ -10,7 +10,7 @@ pub mod plain;
use std::marker::PhantomData;
-use crate::mode::*;
+use crate::{atomic::*, mode::*};
use super::*;
@@ -19,27 +19,6 @@ pub use self::modes::{
CRegularAtomic, RegularAtomic,
};
-/// [`Atomic`] equivalent of [`ParseError`].
-pub type AParseError = ::AParseError;
-
-pub type AParseResult = Result>;
-
-/// [`Atomic`] base.
-pub trait AtomicBase: 'static + Send + Sync + Send + Clone + Serializable {
- /// Equivalent of [`FactoryBase::ParseError`].
- type AParseError: Error;
-}
-
-/// This trait combines functionality of [`Mentionable`] and [`Factory`],
-/// while limiting [`MentionableTop::points_typed`] (and corresponding [`MentionableTop::topology`])
-/// to an empty sequence.
-pub trait Atomic: AtomicBase + ParseMode {
- /// Static equivalent of [`FactoryParse::deserialize`].
- fn a_deserialize(stream: impl Stream) -> AParseResult;
- /// Static equivalent of [`FactoryParse::extend`].
- fn a_extend(self, tail: &[u8]) -> AParseResult;
-}
-
fn _parse_slice(slice: &[u8]) -> AParseResult {
let mut deserializer = SliceDeserializer::from(slice);
let atomic = A::a_deserialize(&mut deserializer)?;
diff --git a/src/rstd/inlining.rs b/src/rstd/inlining.rs
index 4ad52d4..59182ef 100644
--- a/src/rstd/inlining.rs
+++ b/src/rstd/inlining.rs
@@ -3,6 +3,7 @@
mod modes;
pub mod static_pair;
+use crate::atomic::*;
use crate::mode::*;
use crate::rcore::*;