programmieren-in-rust/aufgaben/sheet9/task2/README.md
Lukas Kalbertodt 61db78f64b Add sheet 9
2017-01-04 12:41:13 +01:00

1.2 KiB
Executable File

Aufgabe 2: Schnelles Implementieren von fmt Traits

In Aufgabe 6.3 solltet ihr den fragwürdigen Typ Swagger implementieren. Die konkrete Aufgabe war recht sinnlos, aber das Wrapper-Pattern allgemein ist sehr nützlich, wie wir kurz in der Vorlesung besprochen haben.

Beim letzten mal sollte jedoch nur Display für Swagger<T: Display> implementiert werden. Allerdings gibt es ja deutlich mehr Traits zur Ausgabe von Werten, z.B. auch Debug. In dieser Aufgabe sollt ihr alle Formatting-Traits des fmt Moduls (außer Pointer) für Swagger implementieren, wenn der innere Typ diese Traits implementiert. Doch natürlich fällt euch auf, dass ein manuelles Vorgehen in ziemlich viel doppeltem oder ähnlichem Code enden würde. Daher sollt ihr ein Makro schreiben, um ähnlichen/doppelten Code möglichst zu vermeiden!

Schreibt außerdem ein bisschen Beispielcode in main(), um die Implementationen zu auszuprobieren.