zerodds-types
Layer 1 — Primitives. OMG XTypes 1.3 type system.
- Source: crates/types
- API docs: docs.rs/zerodds-types
zerodds-types implements the full OMG XTypes 1.3 type system: TypeIdentifier union, Minimal+Complete TypeObject, assignability rules, DynamicType reflection, TypeLookup service, EquivalenceHash + KeyHash. Pure-Rust no_std + alloc.
Spec anchors
- OMG XTypes 1.3 §7.3 — type system (TypeIdentifier / TypeObject / hashing)
- OMG XTypes 1.3 §7.5 — DynamicType / DynamicData reflection API
- OMG XTypes 1.3 §7.6 — wire encoding + discovery + DynamicType bridge
- OMG XTypes 1.3 §7.2.4 — assignability + compatibility
- OMG DDS 1.4 §2.2.3 — TypeConsistencyEnforcement QoS policy
Public API modules
- Full reference: docs.rs/zerodds-types →
- Source: crates/types →
- CHANGELOG: CHANGELOG
| Module | Spec | Purpose |
|---|---|---|
type_identifier |
§7.3.4.2 | Discriminated TypeIdentifier union |
type_object |
§7.3.4 | Minimal + Complete TypeObject (10 kinds) |
type_information |
§7.3.5 | TypeInformation + dependencies |
type_lookup |
§7.3.6 | getTypes / getTypeDependencies |
builder |
(internal) | Programmatic TypeObject builder |
hash |
§7.3.1.2 | MD5 → 14-byte EquivalenceHash |
resolve |
§7.3.4.10 | TypeRegistry + alias resolution |
assignability |
§7.2.4 | Compatibility rules |
type_matcher |
§7.6.3.7 | TCE-aware writer↔︎reader match |
qos |
DDS 1.4 §2.2.3 | TypeConsistencyEnforcement |
dynamic |
§7.5 + §7.6.3 | DynamicType + TypeObject bridge |
Quick start
use zerodds_types::{TypeIdentifier, PrimitiveKind};
use zerodds_types::resolve::TypeRegistry;
use zerodds_types::qos::TypeConsistencyEnforcement;
use zerodds_types::type_matcher::TypeMatcher;
let writer = TypeIdentifier::Primitive(PrimitiveKind::Int32);
let reader = TypeIdentifier::Primitive(PrimitiveKind::Int32);
let tce = TypeConsistencyEnforcement::default();
let m = TypeMatcher::new(&tce);
let registry = TypeRegistry::new();
assert!(m.match_types(&writer, &reader, ®istry).is_match());
DynamicType ↔︎ TypeObject bridge
DynamicType::to_type_object supports all 10 TypeObject kinds: struct, union, enumeration, bitmask, bitset, annotation, alias plus the collection kinds sequence, array, map (XTypes §7.3.4.4 — CompleteSequenceType / CompleteArrayType / CompleteMapType). Anonymous plain collections are additionally referenced inline via TypeIdentifier (PlainCollection).
Wiring status
assignability and type_matcher are public API for end-user code (bridge implementations, schema registries).
Feature flags
| Feature | Default | Purpose |
|---|---|---|
std |
✅ | std re-exports, implies alloc |
alloc |
✅ | mandatory (Vec/String/BTreeMap) |
Tests
cargo test -p zerodds-types: 355+ tests (286 unit + 9 dynamic-extra + 40 compliance_typeobject + 5 fuzz_smoke + 5 proptest_assignability + 8 type_lookup_service + 2 doctests).
Stability
All public-API items are semver-stable from 1.0.0-rc.3.
zerodds-types
Layer 1 — Primitives. OMG XTypes 1.3 Type-System.
- Quelle: crates/types
- API-Docs: docs.rs/zerodds-types
zerodds-types implementiert das volle OMG XTypes 1.3 Type-System: TypeIdentifier-Union, Minimal+Complete TypeObject, Assignability-Regeln, DynamicType-Reflection, TypeLookup-Service, EquivalenceHash + KeyHash. Pure-Rust no_std + alloc.
Spec-Anker
- OMG XTypes 1.3 §7.3 — Type-System (TypeIdentifier / TypeObject / Hashing)
- OMG XTypes 1.3 §7.5 — DynamicType / DynamicData Reflection-API
- OMG XTypes 1.3 §7.6 — Wire-Encoding + Discovery + DynamicType-Bridge
- OMG XTypes 1.3 §7.2.4 — Assignability + Compatibility
- OMG DDS 1.4 §2.2.3 — TypeConsistencyEnforcement QoS-Policy
Public-API-Module
- Vollständige Referenz: docs.rs/zerodds-types →
- Quelle: crates/types →
- CHANGELOG: CHANGELOG
| Modul | Spec | Zweck |
|---|---|---|
type_identifier |
§7.3.4.2 | Discriminated TypeIdentifier-Union |
type_object |
§7.3.4 | Minimal + Complete TypeObject (10 Kinds) |
type_information |
§7.3.5 | TypeInformation + Dependencies |
type_lookup |
§7.3.6 | getTypes / getTypeDependencies |
builder |
(intern) | Programmatischer TypeObject-Builder |
hash |
§7.3.1.2 | MD5 → 14-byte EquivalenceHash |
resolve |
§7.3.4.10 | TypeRegistry + Alias-Resolution |
assignability |
§7.2.4 | Compatibility-Regeln |
type_matcher |
§7.6.3.7 | TCE-aware Writer↔︎Reader-Match |
qos |
DDS 1.4 §2.2.3 | TypeConsistencyEnforcement |
dynamic |
§7.5 + §7.6.3 | DynamicType + TypeObject-Bridge |
Quick Start
use zerodds_types::{TypeIdentifier, PrimitiveKind};
use zerodds_types::resolve::TypeRegistry;
use zerodds_types::qos::TypeConsistencyEnforcement;
use zerodds_types::type_matcher::TypeMatcher;
let writer = TypeIdentifier::Primitive(PrimitiveKind::Int32);
let reader = TypeIdentifier::Primitive(PrimitiveKind::Int32);
let tce = TypeConsistencyEnforcement::default();
let m = TypeMatcher::new(&tce);
let registry = TypeRegistry::new();
assert!(m.match_types(&writer, &reader, ®istry).is_match());
DynamicType ↔︎ TypeObject Bridge
DynamicType::to_type_object unterstützt alle 10 TypeObject-Kinds: Struct, Union, Enumeration, Bitmask, Bitset, Annotation, Alias sowie die Collection-Kinds Sequence, Array, Map (XTypes §7.3.4.4 — CompleteSequenceType / CompleteArrayType / CompleteMapType). Anonyme Plain-Collections werden zusätzlich inline über TypeIdentifier (PlainCollection) referenziert.
Wiring-Status
assignability und type_matcher sind Public-API für End-User-Code (Bridge-Implementations, Schema-Registries).
Feature-Flags
| Feature | Default | Zweck |
|---|---|---|
std |
✅ | std-Re-Exports, implies alloc |
alloc |
✅ | mandatory (Vec/String/BTreeMap) |
Tests
cargo test -p zerodds-types: 355+ Tests (286 unit + 9 dynamic-extra + 40 compliance_typeobject + 5 fuzz_smoke + 5 proptest_assignability + 8 type_lookup_service + 2 doctests).
Stabilität
Alle Public-API-Items sind ab 1.0.0-rc.3 semver-stabil.