Skip to main content

Crate zerodds_ast

Crate zerodds_ast 

Source
Expand description

Crate zerodds-ast. Safety classification: SAFE.

The common AST: one strictly typed model that every ZeroDDS type frontend lowers into and every backend reads from. A source-neutral core node space carries per-source typed facets, so a construct from IDL, XTypes, CORBA, ROS 2, DDS-XML or the FlatData model is representable without loss and without a stringly-typed escape hatch.

§Spec

  • docs/specs/zerodds-ast-1.0.md §3 (core node space), §4 (facets), §8 (validation).
  • Feature sources: OMG IDL 4.2, DDS-XTypes 1.3, DDS-DCPS 1.4, DDS-XML 1.0, DDS-RPC 1.0, CORBA 3.3, CCM 4.0, ROS 2 interface definitions.

§Layer position

Layer 1 — over zerodds-ast-core. Direct dependents: zerodds-ast-layout.

Re-exports§

pub use edit::AstTransaction;
pub use error::AstError;
pub use facet::AppliedAnnotation;
pub use facet::AppliedArgument;
pub use facet::AutoId;
pub use facet::ByteSpan;
pub use facet::ComponentRole;
pub use facet::CorbaFacet;
pub use facet::CoreDxFacet;
pub use facet::DataRepresentationMask;
pub use facet::Extensibility;
pub use facet::Facets;
pub use facet::FastDdsFacet;
pub use facet::FlatDataFacet;
pub use facet::HomeManages;
pub use facet::MacroExpansion;
pub use facet::MemberIdAssignment;
pub use facet::MemberIdOrigin;
pub use facet::OpenDdsFacet;
pub use facet::RangeConstraint;
pub use facet::RepositoryIdOrigin;
pub use facet::Ros2Facet;
pub use facet::RosBoundedOrigin;
pub use facet::RosInterfaceRole;
pub use facet::RtiFacet;
pub use facet::SourceFacet;
pub use facet::SourceOrigin;
pub use facet::StateVisibility;
pub use facet::TemplateArg;
pub use facet::TemplateParam;
pub use facet::TemplateParamKind;
pub use facet::TopicAnnotation;
pub use facet::TryConstruct;
pub use facet::VendorFacets;
pub use facet::VendorKind;
pub use facet::VerbatimDirective;
pub use facet::VerbatimPlacement;
pub use facet::XTypesFacet;
pub use facet::XmlFacet;
pub use invariant::InvariantViolation;
pub use kind::NodeKind;
pub use model::Ast;
pub use model::MemberSpec;
pub use model::primitive;
pub use node::AnnotationDefNode;
pub use node::AnnotationMemberNode;
pub use node::AnyId;
pub use node::AttributeNode;
pub use node::BinaryOp;
pub use node::BitValueNode;
pub use node::BitfieldNode;
pub use node::Bound;
pub use node::CaseLabel;
pub use node::CaseNode;
pub use node::CharWidth;
pub use node::Completeness;
pub use node::ConstExpr;
pub use node::ConstExprNode;
pub use node::ConstNode;
pub use node::ConstValue;
pub use node::DomainNode;
pub use node::EndpointNode;
pub use node::EndpointRole;
pub use node::EnumeratorNode;
pub use node::EvalError;
pub use node::ExceptionNode;
pub use node::InterfaceKind;
pub use node::InterfaceNode;
pub use node::LibraryNode;
pub use node::Literal;
pub use node::MemberNode;
pub use node::ModuleNode;
pub use node::OperationNode;
pub use node::ParamDirection;
pub use node::ParamNode;
pub use node::ParticipantNode;
pub use node::PrimitiveKind;
pub use node::QosPolicy;
pub use node::QosPolicyKind;
pub use node::QosProfileNode;
pub use node::TopicNode;
pub use node::TypeKind;
pub use node::TypeNode;
pub use node::UnaryOp;
pub use node::ValuetypeKind;
pub use profile::ConstructKind;
pub use profile::FacetProperty;
pub use profile::Profile;
pub use profile::ProfileViolation;
pub use profile::Verdict;
pub use profile::construct_verdict;
pub use profile::facet_verdict;
pub use refs::PendingSlot;
pub use refs::RefKind;

Modules§

edit
The edit surface. Spec §5.1.
error
Model error type. Spec §10.
facet
Per-source facets. Spec §4.
field
Field discriminators for changesets. Spec §5.2.
invariant
Structural invariants. Spec §8.1.
kind
Node kind discriminators.
model
The model façade. Spec §3.
node
The node space. Spec §3.
profile
Profile validation. Spec §8.2.
query
Query and traversal. Spec §6.
refs
Every reference a node holds, in one enumeration. Spec §2.
snapshot
Model snapshot. Spec §9.

Structs§

ResolveReport
What one resolution pass achieved.

Constants§

DEFAULT_BIT_BOUND
The bit bound an enum or bitmask has when its source said nothing. DDS-XTypes 1.3 §7.3.1.2.1.9.
DEFAULT_EXTENSIBILITY
The extensibility a type has when its source said nothing.