AUTOSAR_AP_EXP_ARARustApplications
FIG-a9e7669da1254646
185 × 294 px
1 Release(s)
Figure 6.4: Type alias
SHA-256 Inhalts-Fingerabdruck:
a9e7669da1254646532dfd44b6a382ff961c40ea5d97dc8a1f26f7e422ff806d
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08
1. Diagrammtyp & Architektur-Kontext
- Klassifikation: UML-Klassendiagramm / Strukturdiagramm (UML-Profilierung für die Rust-Sprachbindung in AUTOSAR AP).
- Technischer Zweck & Einordnung: Spezifiziert die formale UML-Notation für ein Rust-Typ-Alias-Sprachkonstrukt im Rahmen des Schnittstellen- und API-Designs für AUTOSAR Adaptive Platform Rust-Applikationen (
AUTOSAR_AP_EXP_ARARustApplications, Kapitel 6). Das Diagramm definiert den Standard für Modellierungs- und Codegenerierungswerkzeuge (ARXML-to-Rust), um typdefinitorische Verweise auf Basisstrukturen konsistent abzubilden.
2. Komponenten, Entitäten & Schnittstellen
module1::MyStruct2(Stereotyp:«Struct»):- Repräsentiert die konkrete Ziel-Datenstruktur (
struct MyStruct2) innerhalb des Modul-Namespacemodule1. - Dient als definierender Basistyp.
- Repräsentiert die konkrete Ziel-Datenstruktur (
module1::TypeAlias(Stereotyp:«type»):- Repräsentiert das deklarierte Typ-Alias (
type TypeAlias = MyStruct2;) innerhalb desselben Modulsmodule1.
- Repräsentiert das deklarierte Typ-Alias (
- Beziehung (
«type_alias»):- Gerichtete gestrichelte Abhängigkeitskante mit offener Pfeilspitze, annotiert mit dem Stereotyp
«type_alias». - Verläuft von der Alias-Entität (
module1::TypeAlias) zur Ziel-Entität (module1::MyStruct2). - Semantik: Formalisiert ein reines Typsynonym; es wird kein neuer Nominaltyp und keine Vererbungshierarchie begründet.
- Gerichtete gestrichelte Abhängigkeitskante mit offener Pfeilspitze, annotiert mit dem Stereotyp
3. Dynamisches Verhalten & Sequenzablauf
- Dynamik: Nicht zutreffend (reines statisches Metamodell- und Typstruktur-Diagramm).
- Kompilierzeit-Auflösung: Die Zuordnung erfolgt vollständig zur Übersetzungszeit durch den Rust-Compiler (
rustc). Es existieren weder Laufzeit-Instanziierungen, Dispatch-Overheads (kein VTable-Lookup) noch Callbacks oder Zustandsübergänge.
4. Normative Relevanz & Entwickler-Hinweise
- Code-Generierung (ARXML-Mapping):
- Modellierungswerkzeuge und Generatoren müssen für Entitäten mit dem Stereotyp
«type»und einer eingehenden«type_alias»-Kante die Rust-Syntaxpub type TypeAlias = MyStruct2;emittieren.
- Modellierungswerkzeuge und Generatoren müssen für Entitäten mit dem Stereotyp
- Keine starke Typisierung (Kein Newtype-Pattern):
- Ein Typ-Alias erzeugt in Rust keine strikte Typentrennung.
TypeAliasundMyStruct2sind vollständig austauschbar. Entwickler erhalten keinen Schutz gegen unbeabsichtigtes Zuweisen oder Verwechseln semantisch unterschiedlicher Werte. Soll strikte Typsicherheit auf API-Ebene erzwungen werden, ist normativ ein Newtype (struct TypeAlias(pub MyStruct2);) anstelle eines Typ-Alias erforderlich.
- Ein Typ-Alias erzeugt in Rust keine strikte Typentrennung.
- Sichtbarkeit und Modul-Scoping:
- Beide Entitäten unterliegen der Modul-Kapselung
module1. Das exportierte Alias erfordert, dass die zugrunde liegende StrukturMyStruct2mindestens die gleiche Sichtbarkeitsstufe besitzt (pubbzw.pub(crate)), um Compilerfehler (E0446: private type in public interface) zu verhindern.
- Beide Entitäten unterliegen der Modul-Kapselung
- Zero-Cost Abstraction:
- Im Memory-Layout und ABI-Verhalten entspricht das Typ-Alias bitgenau der Zielstruktur
MyStruct2; es entsteht keinerlei Allokations- oder Laufzeit-Overhead für sicherheitskritische Adaptive-Applikationen.
- Im Memory-Layout und ABI-Verhalten entspricht das Typ-Alias bitgenau der Zielstruktur