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§
- Resolve
Report - 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.