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

pub trait ArchetypeTrait<'a>: From<usize> + From<FinalNode> + TryFrom<&'a str> + Ord {
    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 Form[src]

type ArchetypeForm = Archetype

type Form = Form

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

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

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

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

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

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

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

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

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

type ArchetypeForm = Archetype

type Form = Flag

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

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

type ArchetypeForm = Archetype

type Form = Form

Loading content...