.. | ||
README.md |
Aufgabe 1: Hilfsfunktionen
In dieser Aufgabe soll eine Library-Crate (Cargo Projekt) erstellt werden, welche ein paar kleine, aber nützliche Funktionalitäten bereitstellt.
Für alle drei Funktionen/Methoden soll ein Unittest geschrieben werden. Alle
Unittests liegen in dem tests
Untermodul der Crate; alles andere kann aber
im Wurzelmodul definiert sein. Hinweis: Mit cargo test
können alle
Unittests ausgeführt werden.
a) clamp()
Diese Funktion nimmt drei Parameter: einen Wert sowie min
und max
.
Die Funktion returned einfach den gegebenen Wert, solange er zwischen min
und
max
liegt. Falls der gegebene Wert jedoch kleiner als min
ist, wird min
returned; das gleiche entsprechend mit max
.
Die Funktion soll so allgemein wie möglich formuliert werden und keine genauen Typen festlegen.
b) Summe und Produkt
Die Funktion nimmt zwei Argumente and und liefert sowohl die Summe als auch das Produkt dieser beiden Werte zurück. Auch diese Funktion soll möglichst allgemein formuliert werden.
c) Extension Trait
Wir würden gerne bool
-Variablen sehr einfach in ein Option<T>
umwandeln
können, also z.B. so einen Code aufrufen können:
true.into_option(3); // Some(3)
false.into_option("susi"); // None
Fügt die Methode zu bool
mit Hilfe eines Extension Traits hinzu.