[][src]Trait zamm_yang::tao::archetype::ArchetypeTrait

pub trait ArchetypeTrait<'a>: Ord + From<usize> + From<FinalNode> + TryFrom<&'a str> {
    type ArchetypeForm: ArchetypeTrait<'a> + FormTrait;
    type Form: ArchetypeTrait<'a> + FormTrait;

    pub const TYPE_ID: usize;
    pub const TYPE_NAME: &'static str;
    pub const PARENT_TYPE_ID: usize;
    pub fn archetype() -> Self::ArchetypeForm { ... }
pub fn new() -> Self::Form { ... } }

Implement for static access to archetype metadata and typed individuation (individuation through the archetype will return a more generic result than might be desired).

Associated Types

type ArchetypeForm: ArchetypeTrait<'a> + FormTrait[src]

The Form that will be used to reason about this node and its children as archetypes and subtypes.

type Form: ArchetypeTrait<'a> + FormTrait[src]

The Form that will be used to reason about this node's leaves as individuals. Unless you are the Tao, this should be the same as the type that ArchetypeTrait is being implemented on.

Loading content...

Associated Constants

pub const TYPE_ID: usize[src]

The ID for this archetype.

pub const TYPE_NAME: &'static str[src]

The name of this archetype.

pub const PARENT_TYPE_ID: usize[src]

The default parent this archetype inherits from. Every archetype should have at least one parent, so that it doesn't live in a separate universe of its own. This helps enforce that, since allocations are not allowed in Rust constants.

Loading content...

Provided methods

pub fn archetype() -> Self::ArchetypeForm[src]

The incarnation of this archetype as a form.

pub fn new() -> Self::Form[src]

In the beginning was the Oneness, and the Oneness was nothingness.

And no one said "Let there be the null set," but there was the null set.

The null set was, and it separated itself from the wasn't.

And there was the null set, and there was the set containing the null set -- the first ordinal.

And there was recursion -- the naturals.

From this countable infinity all forms emerged, dividing the Oneness again and again into Self and Other. The time has come to stroke the ego, to stand out from the rest of the world as a unique individual engaging in the act of self-realization.

Loading content...

Implementors

impl<'a> ArchetypeTrait<'a> for Archetype[src]

impl<'a> ArchetypeTrait<'a> for AttributeArchetype[src]

impl<'a> ArchetypeTrait<'a> for Data[src]

type ArchetypeForm = Archetype

type Form = Data

impl<'a> ArchetypeTrait<'a> for Number[src]

type ArchetypeForm = Archetype

type Form = Number

impl<'a> ArchetypeTrait<'a> for StringConcept[src]

impl<'a> ArchetypeTrait<'a> for BuildInfo[src]

impl<'a> ArchetypeTrait<'a> for Crate[src]

type ArchetypeForm = Archetype

type Form = Crate

impl<'a> ArchetypeTrait<'a> for Form[src]

type ArchetypeForm = Archetype

type Form = Form

impl<'a> ArchetypeTrait<'a> for Module[src]

type ArchetypeForm = Archetype

type Form = Module

impl<'a> ArchetypeTrait<'a> for KnowledgeGraph[src]

impl<'a> ArchetypeTrait<'a> for Perspective[src]

impl<'a> ArchetypeTrait<'a> for Attribute[src]

impl<'a> ArchetypeTrait<'a> for ConceptId[src]

impl<'a> ArchetypeTrait<'a> for DefaultValue[src]

impl<'a> ArchetypeTrait<'a> for Documentation[src]

impl<'a> ArchetypeTrait<'a> for HasMember[src]

impl<'a> ArchetypeTrait<'a> for HasProperty[src]

impl<'a> ArchetypeTrait<'a> for ImplementationName[src]

impl<'a> ArchetypeTrait<'a> for ImportPath[src]

impl<'a> ArchetypeTrait<'a> for Inherits[src]

impl<'a> ArchetypeTrait<'a> for MostProminentMember[src]

impl<'a> ArchetypeTrait<'a> for Owner[src]

impl<'a> ArchetypeTrait<'a> for OwnerArchetype[src]

impl<'a> ArchetypeTrait<'a> for ReExports[src]

impl<'a> ArchetypeTrait<'a> for RustPrimitive[src]

impl<'a> ArchetypeTrait<'a> for Target[src]

impl<'a> ArchetypeTrait<'a> for Value[src]

impl<'a> ArchetypeTrait<'a> for ValueArchetype[src]

impl<'a> ArchetypeTrait<'a> for Version[src]

impl<'a> ArchetypeTrait<'a> for Flag[src]

type ArchetypeForm = Archetype

type Form = Flag

impl<'a> ArchetypeTrait<'a> for NewlyDefined[src]

impl<'a> ArchetypeTrait<'a> for Nonhereditary[src]

impl<'a> ArchetypeTrait<'a> for OwnModule[src]

impl<'a> ArchetypeTrait<'a> for UsesAttributeLogic[src]

impl<'a> ArchetypeTrait<'a> for UsesDataLogic[src]

impl<'a> ArchetypeTrait<'a> for UsesRootNodeLogic[src]

impl<'a> ArchetypeTrait<'a> for Relation[src]

impl<'a> ArchetypeTrait<'a> for Implement[src]

impl<'a> ArchetypeTrait<'a> for Tao[src]

type ArchetypeForm = Archetype

type Form = Form

Loading content...