# `zerodds-corba-ir`
[](https://www.apache.org/licenses/LICENSE-2.0)
[](https://docs.rs/zerodds-corba-ir)
OMG CORBA 3.3 Part 1 §14 — Interface Repository (IR). TypeCode (alle
32 TCKinds), Repository mit Containment-Hierarchie, DefinitionKind,
strukturierte RepositoryId. `no_std + alloc`,
`forbid(unsafe_code)`. Safety classification: **STANDARD**.
## Spec-Mapping
| OMG CORBA 3.3 Part 1 | §10.7.3 (RepositoryId-Format), §14 (Interface Repository) |
| OMG CORBA 3.3 Part 1 | §3.13.1 (TypeCode-Operations) |
## Was ist drin
- **`RepositoryId`** — `IDL:<scoped>:<major>.<minor>`-Parser/Builder mit
Roundtrip-Garantie.
- **`TypeCode`** — alle 32 OMG-TCKinds (`tk_null` … `tk_local_interface`)
mit strukturierten Bodies fuer komplexe Types (Struct/Union/Enum/Value/...).
- **`Repository`** + `Container` + `Definition` + `Module` — IR-Containment-
Hierarchie pro §14.
- **`DefinitionKind`** — `dk_*`-Konstanten gemaess §14.
## Was nicht abgedeckt ist
- IIOP-Wire-Encoding der IR-Operations: gehoert in `corba-iiop` /
`corba-giop`.
- TypeCode-CDR-Encapsulation: liegt in `zerodds-cdr` (OMG-CDR §15.3.5.1
TypeCode-Wire-Format).
## Beispiel
```rust
use zerodds_corba_ir::{RepositoryId, TcKind, TypeCode};
let r = RepositoryId::parse("IDL:omg.org/CosNaming/NamingContext:1.0").unwrap();
assert_eq!(r.scoped_name, "omg.org/CosNaming/NamingContext");
assert_eq!(r.to_canonical(), "IDL:omg.org/CosNaming/NamingContext:1.0");
```
## Tests
```bash
cargo test -p zerodds-corba-ir
```
## See also
- [Architecture](../../docs/architecture/02_architecture.md)
- [Components](../../documentation/02-architecture/components.md)