"Base"s docs

This commit is contained in:
AF 2023-07-30 17:08:57 +00:00
parent 00cd62ce90
commit c9287c97d4
2 changed files with 6 additions and 4 deletions

View File

@ -51,7 +51,7 @@ pub use self::slice_deserializer::SliceDeserializer;
/// Helper alias for [`WeakFunctor::F`] of [`FunctorContext::T`]. /// Helper alias for [`WeakFunctor::F`] of [`FunctorContext::T`].
pub type Wrapped<'a, Ctx, A> = WrapC<'a, A, Ctx>; pub type Wrapped<'a, Ctx, A> = WrapC<'a, A, Ctx>;
/// Fundamental trait for ADN objects. /// Base for [`Mentionable`].
pub trait MentionableBase<'a, Ctx: Context<'a>>: 'a + Serializable + Sized { pub trait MentionableBase<'a, Ctx: Context<'a>>: 'a + Serializable + Sized {
/// Type of the associated factory. /// Type of the associated factory.
type Fctr: FactoryBase<'a, Ctx, Mtbl = Self>; type Fctr: FactoryBase<'a, Ctx, Mtbl = Self>;
@ -78,6 +78,7 @@ pub trait MentionableTop<'a, Ctx: Context<'a>>: 'a {
Self: Mentionable<'a, Ctx>; Self: Mentionable<'a, Ctx>;
} }
/// Fundamental trait for ADN objects.
pub trait Mentionable<'a, Ctx: Context<'a>>: pub trait Mentionable<'a, Ctx: Context<'a>>:
MentionableBase<'a, Ctx, Fctr = Self::_Fctr> + MentionableTop<'a, Ctx> MentionableBase<'a, Ctx, Fctr = Self::_Fctr> + MentionableTop<'a, Ctx>
{ {

View File

@ -24,14 +24,15 @@ pub type AParseError<A> = <A as AtomicBase>::AParseError;
pub type AParseResult<A> = Result<A, AParseError<A>>; pub type AParseResult<A> = Result<A, AParseError<A>>;
/// This trait combines functionality of [`Mentionable`] and [`Factory`], /// Base for [`Atomic`].
/// while limiting [`MentionableTop::points_typed`] (and corresponding [`MentionableTop::topology`])
/// to an empty sequence.
pub trait AtomicBase: 'static + Send + Sync + Send + Clone + Serializable { pub trait AtomicBase: 'static + Send + Sync + Send + Clone + Serializable {
/// Equivalent of [`FactoryBase::ParseError`]. /// Equivalent of [`FactoryBase::ParseError`].
type AParseError: Error; 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 { pub trait Atomic: AtomicBase + ParseMode {
/// Static equivalent of [`FactoryParse::deserialize`]. /// Static equivalent of [`FactoryParse::deserialize`].
fn a_deserialize(inlining: impl Inlining) -> AParseResult<Self>; fn a_deserialize(inlining: impl Inlining) -> AParseResult<Self>;