zerodds-corba-ir 1.0.0-rc.1

OMG CORBA 3.3 Part 1 §14 Interface Repository (IR) — TypeCode (32 TCKinds), Repository-Hierarchie, DefinitionKind, RepositoryId-Format. no_std + alloc.
Documentation
# `zerodds-corba-ir`

[![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
[![docs.rs](https://docs.rs/zerodds-corba-ir/badge.svg)](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

| Spec | Abschnitt |
|------|-----------|
| 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