AUTOSAR_AP_EXP_ARARustApplications
FIG-d33b7bd96c588a8f
185 × 293 px
2 Release(s)
Figure 6.4: Type alias
SHA-256 Inhalts-Fingerabdruck:
d33b7bd96c588a8f090c35c45782814726095a6b93c893c5ef072be51fe6d430
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07
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