Skip to main content

zerodds_corba_codegen/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright 2026 ZeroDDS Contributors
3
4//! Crate `zerodds-corba-codegen`. Safety classification: **STANDARD**.
5//!
6//! OMG CORBA 3.3 Annex-A.1 IDL-Mapping-Codegen-Helpers — pure-Rust
7//! `no_std + alloc`, `forbid(unsafe_code)`. Liefert Tabellen + Helper,
8//! die [`zerodds-idl-cpp`], [`zerodds-idl-csharp`] und
9//! [`zerodds-idl-java`] zur Erzeugung CORBA-Stub-/Skeleton-Codes
10//! konsumieren.
11//!
12//! Spec: OMG CORBA 3.3 Part 1 Annex A (IDL-Type-Mappings) +
13//! `formal/2008-01-09` IDL-to-C++ + `formal/2008-01-04` IDL-to-Java.
14//!
15//! ## Schichten-Position
16//!
17//! Layer 8 — CORBA-Stack. Substrat fuer die drei OMG-PSM-Codegen-
18//! Crates ([`zerodds-idl-cpp`] / [`zerodds-idl-csharp`] /
19//! [`zerodds-idl-java`]).
20//!
21//! [`zerodds-idl-cpp`]: ../zerodds_idl_cpp/index.html
22//! [`zerodds-idl-csharp`]: ../zerodds_idl_csharp/index.html
23//! [`zerodds-idl-java`]: ../zerodds_idl_java/index.html
24//!
25//! ## Public API (Stand 1.0.0-rc.1)
26//!
27//! - [`SpecialType`] / [`TargetLanguage`] / [`language_mapping`] —
28//!   13 Annex-A.1 Special-Types (Object, ValueBase, AbstractBase,
29//!   NativeRef, TypeCode, any, sequence-of-any, string, wstring,
30//!   Time, fixed, ULongLong, LongDouble) mit Sprach-Mappings fuer
31//!   C++ / C# / Java.
32//! - [`StubOp`] / [`render_stub_op`] — Client-Stub-Template (sendet
33//!   GIOP-Request, erwartet Reply mit ReplyStatus-Switch).
34//! - [`SkeletonOp`] / [`render_skeleton_dispatch`] — Server-Side-
35//!   Dispatch-Template (Operation-Name-Switch).
36//! - [`build_repository_id`] — Repository-ID-Builder (Spec §10.7.3.1)
37//!   fuer IDL-`module`/`interface`-Pfade.
38//!
39//! ## Beispiel
40//!
41//! ```rust
42//! use zerodds_corba_codegen::build_repository_id;
43//!
44//! let id = build_repository_id(&["MyModule"], "MyInterface", 1, 0);
45//! assert_eq!(id, "IDL:MyModule/MyInterface:1.0");
46//! ```
47
48#![cfg_attr(not(feature = "std"), no_std)]
49#![forbid(unsafe_code)]
50#![warn(missing_docs)]
51
52#[cfg(feature = "alloc")]
53extern crate alloc;
54
55pub mod repository_id;
56pub mod skeleton;
57pub mod special_types;
58pub mod stub;
59
60pub use repository_id::build_repository_id;
61pub use skeleton::{SkeletonOp, render_skeleton_dispatch};
62pub use special_types::{SpecialType, TargetLanguage, language_mapping};
63pub use stub::{StubOp, render_stub_op};