zerodds-idl-rust
Layer 3 — Schema (codegen). IDL4 → Rust data types (ZeroDDS spec).
- Source: crates/idl-rust
- API docs: docs.rs/zerodds-idl-rust
IDL4 → Rust code generation for the ZeroDDS data-type stack. Reads the IDL AST from zerodds-idl and emits pub struct/enum definitions plus impl zerodds_dcps::DdsType and the matching zerodds_cdr::CdrEncode/CdrDecode helpers — final, appendable and mutable extensibility each mapped to the correct XCDR2 wire path. A build-time tool (forbid(unsafe_code), std-only) consumed via zerodds-idlc.
Spec anchors
- ZeroDDS-own spec — IDL4 → Rust with the
DdsTypetrait. - Final / appendable / mutable each mapped to its XCDR2 wire path.
Quick start
Turn a parsed IDL AST into a ready-to-compile Rust module:
use zerodds_idl_rust::{generate_rust_module, RustGenOptions};
// `ast` is an OMG IDL 4.2 AST parsed by the `zerodds-idl` crate
let rust_src = generate_rust_module(&ast, &RustGenOptions::default())?;
Modules
emitter— top-level module emission.struct_emit/enum_emit/union_emit/typedef_emit/bitset_emit— per-construct codegen.type_map/type_identifier— IDL → Rust mapping + XTypes identifiers.annotations—@key/@id/@extensibilityhandling.error—RustGenErrorfamily.
Coverage & tests
Coverage ledger: zerodds-idl-rust-1.0. Driven by tools/idlc + snapshot tests; run cargo test -p zerodds-idl-rust.
Stability
1.0.0-rc.3. Driven by tools/idlc + snapshot tests.
zerodds-idl-rust
Layer 3 — Schema (codegen). IDL4 → Rust-DataTypes (ZeroDDS-eigene Spec).
- Quelle: crates/idl-rust
- API-Docs: docs.rs/zerodds-idl-rust
IDL4 → Rust-Codegenerierung für den ZeroDDS-DataType-Stack. Liest den IDL-AST aus zerodds-idl und emittiert pub struct/enum-Definitionen plus impl zerodds_dcps::DdsType und die passenden zerodds_cdr::CdrEncode/CdrDecode-Helper — Final-, Appendable- und Mutable-Extensibility jeweils auf den korrekten XCDR2-Wire-Pfad abgebildet. Ein Build-Zeit-Tool (forbid(unsafe_code), std-only), konsumiert via zerodds-idlc.
Spec-Anker
- ZeroDDS-eigene Spec — IDL4 → Rust mit dem
DdsType-Trait. - Final / Appendable / Mutable jeweils auf den XCDR2-Wire-Pfad abgebildet.
Quick Start
Aus einem geparsten IDL-AST ein fertig kompilierbares Rust-Modul erzeugen:
use zerodds_idl_rust::{generate_rust_module, RustGenOptions};
// `ast` is an OMG IDL 4.2 AST parsed by the `zerodds-idl` crate
let rust_src = generate_rust_module(&ast, &RustGenOptions::default())?;
Module
emitter— Top-Level-Modul-Emission.struct_emit/enum_emit/union_emit/typedef_emit/bitset_emit— Codegen pro Konstrukt.type_map/type_identifier— IDL → Rust Mapping + XTypes-Identifier.annotations—@key/@id/@extensibility-Behandlung.error—RustGenError-Familie.
Coverage & Tests
Coverage-Ledger: zerodds-idl-rust-1.0. Getrieben von tools/idlc + Snapshot-Tests; cargo test -p zerodds-idl-rust.
Stabilität
1.0.0-rc.3. Getrieben von tools/idlc + Snapshot-Tests.