Aufgaben-Python/courses/rust/10_generics_und_dynamischer_dispatch
Alex Mueller 2571cb8847 feat(ux): responsive kurs-sidebar und kapitel-drawer für alle 13 kurse & web-ide
- Dynamic Sidebar mit window.COURSES_MANIFEST für 13 Kurse (216 Kapitel)
- Kurswechsler Dropdown mit Direktnavigation
- Fortschrittsanzeige mit Solved-Checkmarks (✓) aus localStorage
- Responsive Off-Canvas Drawer mit Floating Action Button (☰ Kapitel) & Backdrop auf Mobile/Tablets
- Web-IDE Topbar Drawer-Button (☰ Kapitel) für unterbrechungsfreien Vollbild-Editor
- Saubere Bereinigung redundanter statischer Legacy-Sidebars
2026-09-12 13:49:46 +02:00
..
aufgabe.rs IHK AP1 & AP2 (FISI) Crashkurse: Vollständige Lernfeld-Module (LF 1-12), 150 IHK-Prüfungsfragen, interaktive Prüfungs-Engine und Multi-Sprachen-Erweiterung (PDFs excluded) 2026-09-10 07:43:39 +02:00
index.html feat(ux): responsive kurs-sidebar und kapitel-drawer für alle 13 kurse & web-ide 2026-09-12 13:49:46 +02:00
musterloesung.rs IHK AP1 & AP2 (FISI) Crashkurse: Vollständige Lernfeld-Module (LF 1-12), 150 IHK-Prüfungsfragen, interaktive Prüfungs-Engine und Multi-Sprachen-Erweiterung (PDFs excluded) 2026-09-10 07:43:39 +02:00
README.md IHK AP1 & AP2 (FISI) Crashkurse: Vollständige Lernfeld-Module (LF 1-12), 150 IHK-Prüfungsfragen, interaktive Prüfungs-Engine und Multi-Sprachen-Erweiterung (PDFs excluded) 2026-09-10 07:43:39 +02:00
test_aufgabe.rs IHK AP1 & AP2 (FISI) Crashkurse: Vollständige Lernfeld-Module (LF 1-12), 150 IHK-Prüfungsfragen, interaktive Prüfungs-Engine und Multi-Sprachen-Erweiterung (PDFs excluded) 2026-09-10 07:43:39 +02:00

Rust 10: Generics & Dynamischer Dispatch

Lerne den fundamentalen Unterschied zwischen statischem Dispatch (Monomorphisierung) und dynamischem Dispatch (Trait Objects mit dyn Trait) kennen.


🎯 Lernziele

  1. Generische Structs & Methoden: Typ-unabhängigen Code mit struct Container<T> und impl<T> Container<T> schreiben.
  2. Monomorphisierung: Verstehen, wie der Rust-Compiler generischen Code zur Compile-Zeit dupliziert (Zero-Cost Abstractions).
  3. Trait Objects (dyn Trait): Trait-Objekte mit Box<dyn Trait> oder &dyn Trait für heterogene Collections erstellen.
  4. Vtable & Fat Pointer: Aufbau von Trait Objects (Datenpointer + vtable-Pointer) nachvollziehen.

💡 Schlüsselkonzepte

1. Statischer Dispatch (Generics)

fn process_static<T: DataPlugin>(plugin: &T, input: &str) -> String {
    plugin.process(input) // Direkter Aufruf, vom Compiler inline-optimiert
}

2. Dynamischer Dispatch (dyn Trait)

fn process_dynamic(plugin: &dyn DataPlugin, input: &str) -> String {
    plugin.process(input) // vtable Lookup zur Laufzeit
}

🧪 Tests ausführen

rustc --test test_aufgabe.rs && ./test_aufgabe