openehr-rm 0.0.4

openEHR RM 1.2.0 Reference Model, generated from BMM
Documentation
// @generated by openehr-codegen from BMM (`PATHABLE`) — DO NOT EDIT.

//! The openEHR `PATHABLE` spec class, generated from the vendored BMM
//! meta-model.

use crate::common::directory::folder::Folder;
use crate::composition::composition::Composition;
use crate::composition::content::entry::action::Action;
use crate::composition::content::entry::activity::Activity;
use crate::composition::content::entry::admin_entry::AdminEntry;
use crate::composition::content::entry::evaluation::Evaluation;
use crate::composition::content::entry::instruction::Instruction;
use crate::composition::content::entry::instruction_details::InstructionDetails;
use crate::composition::content::entry::ism_transition::IsmTransition;
use crate::composition::content::entry::observation::Observation;
use crate::composition::content::navigation::section::Section;
use crate::composition::event_context::EventContext;
use crate::data_structures::history::history::History;
use crate::data_structures::history::interval_event::IntervalEvent;
use crate::data_structures::history::point_event::PointEvent;
use crate::data_structures::item_structure::item_list::ItemList;
use crate::data_structures::item_structure::item_single::ItemSingle;
use crate::data_structures::item_structure::item_structure::ItemStructure;
use crate::data_structures::item_structure::item_table::ItemTable;
use crate::data_structures::item_structure::item_tree::ItemTree;
use crate::data_structures::representation::cluster::Cluster;
use crate::data_structures::representation::element::Element;
use crate::demographic::address::Address;
use crate::demographic::agent::Agent;
use crate::demographic::capability::Capability;
use crate::demographic::contact::Contact;
use crate::demographic::group::Group;
use crate::demographic::organisation::Organisation;
use crate::demographic::party_identity::PartyIdentity;
use crate::demographic::party_relationship::PartyRelationship;
use crate::demographic::person::Person;
use crate::demographic::role::Role;
use crate::ehr::ehr_access::EhrAccess;
use crate::ehr::ehr_status::EhrStatus;
use crate::ehr_extract::common::extract::Extract;
use crate::ehr_extract::common::extract_action_request::ExtractActionRequest;
use crate::ehr_extract::common::extract_chapter::ExtractChapter;
use crate::ehr_extract::common::extract_folder::ExtractFolder;
use crate::ehr_extract::common::extract_request::ExtractRequest;
use crate::ehr_extract::generic_extract::generic_content_item::GenericContentItem;
use crate::ehr_extract::openehr_extract::openehr_content_item::OpenehrContentItem;
use crate::integration::generic_entry::GenericEntry;

/// Closed subtype set of `PATHABLE`, dispatched on each payload's `_type`.
///
/// The `PATHABLE` class defines the pathing capabilities used by nearly all classes in the openEHR reference model, mostly via inheritance of `LOCATABLE`.
///
/// The defining characteristics of `PATHABLE` objects are that they can locate child objects using paths, and they know their parent object in a compositional hierarchy. The parent feature is defined as abstract in the model, and may be implemented in any way convenient.
#[doc(alias = "PATHABLE")]
#[derive(Debug, Clone, PartialEq)]
pub enum Pathable {
    /// The `ACTION` subtype of `PATHABLE`.
    Action(Action),
    /// The `ACTIVITY` subtype of `PATHABLE`.
    Activity(Activity),
    /// The `ADDRESS` subtype of `PATHABLE`.
    Address(Address),
    /// The `ADMIN_ENTRY` subtype of `PATHABLE`.
    AdminEntry(AdminEntry),
    /// The `AGENT` subtype of `PATHABLE`.
    Agent(Agent),
    /// The `CAPABILITY` subtype of `PATHABLE`.
    Capability(Capability),
    /// The `CLUSTER` subtype of `PATHABLE`.
    Cluster(Cluster),
    /// The `COMPOSITION` subtype of `PATHABLE`.
    Composition(Composition),
    /// The `CONTACT` subtype of `PATHABLE`.
    Contact(Contact),
    /// The `EHR_ACCESS` subtype of `PATHABLE`.
    EhrAccess(EhrAccess),
    /// The `EHR_STATUS` subtype of `PATHABLE`.
    EhrStatus(EhrStatus),
    /// The `ELEMENT` subtype of `PATHABLE`.
    Element(Element),
    /// The `EVALUATION` subtype of `PATHABLE`.
    Evaluation(Evaluation),
    /// The `EVENT_CONTEXT` subtype of `PATHABLE`.
    EventContext(EventContext),
    /// The `EXTRACT` subtype of `PATHABLE`.
    Extract(Extract),
    /// The `EXTRACT_ACTION_REQUEST` subtype of `PATHABLE`.
    ExtractActionRequest(ExtractActionRequest),
    /// The `EXTRACT_CHAPTER` subtype of `PATHABLE`.
    ExtractChapter(ExtractChapter),
    /// The `EXTRACT_FOLDER` subtype of `PATHABLE`.
    ExtractFolder(ExtractFolder),
    /// The `EXTRACT_REQUEST` subtype of `PATHABLE`.
    ExtractRequest(ExtractRequest),
    /// The `FOLDER` subtype of `PATHABLE`.
    Folder(Folder),
    /// The `GENERIC_CONTENT_ITEM` subtype of `PATHABLE`.
    GenericContentItem(GenericContentItem),
    /// The `GENERIC_ENTRY` subtype of `PATHABLE`.
    GenericEntry(GenericEntry),
    /// The `GROUP` subtype of `PATHABLE`.
    Group(Group),
    /// The `HISTORY` subtype of `PATHABLE`.
    History(History<ItemStructure>),
    /// The `INSTRUCTION` subtype of `PATHABLE`.
    Instruction(Instruction),
    /// The `INSTRUCTION_DETAILS` subtype of `PATHABLE`.
    InstructionDetails(InstructionDetails),
    /// The `INTERVAL_EVENT` subtype of `PATHABLE`.
    IntervalEvent(IntervalEvent<ItemStructure>),
    /// The `ISM_TRANSITION` subtype of `PATHABLE`.
    IsmTransition(IsmTransition),
    /// The `ITEM_LIST` subtype of `PATHABLE`.
    ItemList(ItemList),
    /// The `ITEM_SINGLE` subtype of `PATHABLE`.
    ItemSingle(ItemSingle),
    /// The `ITEM_TABLE` subtype of `PATHABLE`.
    ItemTable(ItemTable),
    /// The `ITEM_TREE` subtype of `PATHABLE`.
    ItemTree(ItemTree),
    /// The `OBSERVATION` subtype of `PATHABLE`.
    Observation(Observation),
    /// The `OPENEHR_CONTENT_ITEM` subtype of `PATHABLE`.
    OpenehrContentItem(OpenehrContentItem),
    /// The `ORGANISATION` subtype of `PATHABLE`.
    Organisation(Organisation),
    /// The `PARTY_IDENTITY` subtype of `PATHABLE`.
    PartyIdentity(PartyIdentity),
    /// The `PARTY_RELATIONSHIP` subtype of `PATHABLE`.
    PartyRelationship(PartyRelationship),
    /// The `PERSON` subtype of `PATHABLE`.
    Person(Person),
    /// The `POINT_EVENT` subtype of `PATHABLE`.
    PointEvent(PointEvent<ItemStructure>),
    /// The `ROLE` subtype of `PATHABLE`.
    Role(Role),
    /// The `SECTION` subtype of `PATHABLE`.
    Section(Section),
}