pub enum NodeKind {
Show 22 variants
Module,
Type,
Member,
Case,
Enumerator,
BitValue,
Bitfield,
Const,
ConstExpr,
Interface,
Operation,
Param,
Attribute,
Exception,
AnnotationDef,
AnnotationMember,
Domain,
Topic,
QosProfile,
Participant,
Endpoint,
Library,
}Expand description
Every kind of node the model holds. Spec §3.
Exhaustive on purpose. An adapter presenting the model to another system has to name every kind; with a catch-all arm a kind added here would become a construct that system can never see, and nothing would say so. Adding a variant is a compile error at every such consumer, which is the point.
Variants§
Module
A namespace. Spec §3.1.
Type
A named type. Spec §3.2.
Member
A field of an aggregate. Spec §3.3.
Case
One case of a union. Spec §3.3.
Enumerator
One enumerator. Spec §3.3.
BitValue
One bitmask bit. Spec §3.3.
Bitfield
One bitset field. Spec §3.3.
Const
A named constant. Spec §3.5.
ConstExpr
One node of a constant expression tree. Spec §3.5.
Interface
An interface or component form. Spec §3.4.
Operation
An operation. Spec §3.4.
Param
An operation parameter. Spec §3.4.
Attribute
An interface attribute. Spec §3.4.
Exception
An exception. Spec §3.4.
AnnotationDef
An @annotation declaration. Spec §3.6.
AnnotationMember
A member of an annotation declaration. Spec §3.6.
Domain
A DDS domain. Spec §3.7.
Topic
A topic. Spec §3.7.
QosProfile
A QoS profile. Spec §3.7.
Participant
A domain participant. Spec §3.7.
Endpoint
A reader or writer endpoint. Spec §3.7.
Library
A deployment library. Spec §3.7.
Implementations§
Source§impl NodeKind
impl NodeKind
Sourcepub const ALL: [Self; 22]
pub const ALL: [Self; 22]
Every kind, in tag order. Lets a conformance test assert that the tag mapping is total and collision-free.
Sourcepub const fn tag(self) -> NodeKindTag
pub const fn tag(self) -> NodeKindTag
Wire tag for changesets and snapshots.
Sourcepub const fn from_tag(tag: NodeKindTag) -> Option<Self>
pub const fn from_tag(tag: NodeKindTag) -> Option<Self>
Inverse of NodeKind::tag.