1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
// SPDX-License-Identifier: Apache-2.0
// Copyright 2026 ZeroDDS Contributors
//! Crate `zerodds-types`. Safety classification: **SAFE**.
//!
//! OMG XTypes 1.3 Type-System — TypeIdentifier, TypeObject, Compatibility.
//! Pure-Rust no_std + alloc, `forbid(unsafe_code)`.
//!
//! ## Spec
//!
//! - **OMG XTypes 1.3** §7.3.1 (TypeIdentifier), §7.3.4 (TypeIdentifier-Union)
//! - **OMG XTypes 1.3** §7.3.4 (Minimal + Complete TypeObject)
//! - **OMG XTypes 1.3** §7.3.5 (TypeInformation + Dependencies)
//! - **OMG XTypes 1.3** §7.3.6 (TypeLookup Service IDL)
//! - **OMG XTypes 1.3** §7.2.4 (assignability + compatibility rules)
//! - **OMG XTypes 1.3** §7.6.3 (DynamicType ↔ TypeObject Bridge)
//! - **OMG XTypes 1.3** §7.6.8 (KeyHash + EquivalenceHash via MD5)
//! - **OMG DDS 1.4** §2.2.3 (TypeConsistencyEnforcement QoS-Policy)
//!
//! ## Layer position
//!
//! Layer 1 — primitives. Direct dependents: `zerodds-discovery`,
//! `zerodds-dcps`, `zerodds-idl`, `zerodds-rpc`, `zerodds-xml`.
//! Architecture + RFC: `internal/rfcs/0004-xtypes-integration.md`.
//!
//! ## Public-API modules
//!
//! - [`type_identifier`] — TypeIdentifier union (§7.3.4.2).
//! - [`type_object`] — minimal + complete TypeObject (§7.3.4).
//! - [`type_information`] — TypeInformation + dependencies (§7.3.5).
//! - [`type_lookup`] — getTypes / getTypeDependencies IDL (§7.3.6).
//! - [`builder`] — programmatic builder for all kinds.
//! - [`hash`] — MD5 → 14-byte EquivalenceHash (§7.3.1.2.1).
//! - [`resolve`] — TypeRegistry + alias resolution + DoS caps.
//! - [`assignability`] — type-compatibility rules (§7.2.4).
//! - [`type_matcher`] — writer↔reader matching with TCE policy
//! (§7.6.3.7 + §7.2.4).
//! - [`qos`] — TypeConsistencyEnforcement + DataRepresentation
//! (DDS 1.4 §2.2.3).
//! - [`dynamic`] — DynamicType / DynamicData reflection API
//! (§7.5) incl. DynamicType ↔ TypeObject bridge (§7.6.3).
//!
//! ## Wiring status
//!
//! `assignability` and `type_matcher` are **public API** for end-user
//! code that does its own type-compatibility checks outside the DDS
//! discovery pipeline (e.g. bridge implementations, custom schema
//! registries). The ZeroDDS discovery pipeline currently matches by
//! `type_name` (DDS 1.4 §2.2.3 default path); full XTypes 1.3 §7.6
//! TypeIdentifier-aware discovery is its own cross-layer architecture
//! epic (TypeIdentifier constants in codegen + SEDP propagation +
//! TypeRegistry shared state).
// `zerodds-types` mandatorily requires `alloc` — all modules use
// `Vec`/`String`/`BTreeMap` for TypeObject containers. `zerodds-cdr` with
// the `alloc` feature is a mandatory dep, so `extern crate alloc` is
// always available.
extern crate alloc;
extern crate std;
pub use TypeCodecError;
pub use ;
pub use ;
pub use ;
pub use ;