rost/examples/src/main.rs

77 lines
2 KiB
Rust
Raw Normal View History

2021-09-11 18:21:47 +02:00
rost::rost! {
benutze std::collections::Wörterbuch als Wöbu;
2021-09-09 20:04:10 +02:00
eigenschaft SchlüsselWert {
2021-09-11 18:21:47 +02:00
funktion schreibe(&selbst, schlsl: Zeichenkette, wert: Zeichenkette);
funktion lese(&selbst, schlsl: Zeichenkette) -> Ergebnis<Möglichkeit<&Zeichenkette>, Zeichenkette>;
2021-09-09 19:40:29 +02:00
}
2021-09-11 18:21:47 +02:00
statisch änd WÖRTERBUCH: Möglichkeit<Wöbu<Zeichenkette, Zeichenkette>> = Nichts;
struktur Konkret;
2021-09-09 19:40:29 +02:00
2021-09-11 18:21:47 +02:00
umstz SchlüsselWert für Konkret {
2021-09-09 19:40:29 +02:00
2021-09-11 18:21:47 +02:00
funktion schreibe(&selbst, schlsl: Zeichenkette, wert: Zeichenkette) {
lass wöbu = gefährlich {
WÖRTERBUCH.hole_oder_füge_ein_mit(Standard::standard)
2021-09-09 19:40:29 +02:00
};
2021-09-11 18:21:47 +02:00
wöbu.einfügen(schlsl, wert);
2021-09-09 19:40:29 +02:00
}
2021-09-11 18:21:47 +02:00
funktion lese(&selbst, schlsl: Zeichenkette) -> Ergebnis<Möglichkeit<&Zeichenkette>, Zeichenkette> {
wenn lass Etwas(wöbu) = gefährlich { WÖRTERBUCH.als_ref() } {
Gut(wöbu.hole(&schlsl))
} anderenfalls {
Fehler("Holt das Wörterbuch".hinein())
2021-09-11 15:55:13 +02:00
}
2021-09-09 19:40:29 +02:00
}
}
2021-09-11 18:21:47 +02:00
öffentlich(kiste) funktion vielleicht(i: u32) -> Möglichkeit<Ergebnis<u32, Zeichenkette>> {
wenn i % 2 == 1 {
wenn i == 42 {
Etwas(Fehler(Zeichenkette::von("Scheiße")))
} anderenfalls {
Etwas(Gut(33))
2021-09-09 19:40:29 +02:00
}
2021-09-11 18:21:47 +02:00
} anderenfalls {
Nichts
2021-09-09 19:40:29 +02:00
}
}
2021-09-11 18:21:47 +02:00
asynchron funktion beispiel() {
2021-09-09 19:40:29 +02:00
}
2021-09-11 18:21:47 +02:00
asynchron funktion beispiel2() {
2021-09-11 18:24:27 +02:00
beispiel().abwarten;
2021-09-09 19:40:29 +02:00
}
2021-09-11 18:21:47 +02:00
funktion einstieg() {
lass änd x = 31;
2021-09-09 19:40:29 +02:00
2021-09-11 18:21:47 +02:00
entspreche x {
2021-09-09 19:40:29 +02:00
42 => {
2021-09-11 18:21:47 +02:00
ausgabe!("Wienerschnitzel")
2021-09-09 19:40:29 +02:00
}
2021-09-11 18:21:47 +02:00
_ => ausgabe!("Na geht doch")
2021-09-09 19:40:29 +02:00
}
2021-09-11 18:21:47 +02:00
für i in 0..10 {
lass val = schleife {
abbruch i;
2021-09-09 19:40:29 +02:00
};
2021-09-10 09:38:37 +02:00
2021-09-11 18:21:47 +02:00
während keins x < val {
2021-09-09 19:40:29 +02:00
x += 1;
}
2021-09-10 09:38:37 +02:00
2021-09-11 18:21:47 +02:00
x = wenn lass Etwas(ergebnis) = vielleicht(i) {
ergebnis.entpacken()
} anderenfalls {
2021-09-10 09:38:37 +02:00
12
};
2021-09-09 19:40:29 +02:00
}
}
}