forked from michidk/rost
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.rs
89 lines (73 loc) · 2.43 KB
/
main.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
rost::rost! {
benutze std::sammlungen::Wörterbuch als Wöbu;
eigenschaft SchlüsselWert {
funktion schreibe(&selbst, schlsl: Zeichenkette, wert: Zeichenkette);
funktion lese(&selbst, schlsl: Zeichenkette) -> Ergebnis<Möglichkeit<&Zeichenkette>, Zeichenkette>;
}
statisch änd WÖRTERBUCH: Möglichkeit<Wöbu<Zeichenkette, Zeichenkette>> = Nichts;
struktur Konkret;
umstz SchlüsselWert für Konkret {
funktion schreibe(&selbst, schlsl: Zeichenkette, wert: Zeichenkette) {
lass wöbu = gefährlich {
WÖRTERBUCH.hole_oder_füge_ein_mit(Standard::standard)
};
wöbu.einfügen(schlsl, wert);
}
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())
}
}
}
ö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))
}
} anderenfalls {
Nichts
}
}
asynchron funktion beispiel() {
}
asynchron funktion beispiel2() {
beispiel().abwarten;
}
funktion einstieg() {
lass änd x = 31;
entspreche x {
42 => {
ausgabe!("Wienerschnitzel")
}
_ => ausgabe!("Na geht doch")
}
für i in 0..10 {
lass val = schleife {
abbruch i;
};
während keins x < val {
x += 1;
}
x = wenn lass Etwas(ergebnis) = vielleicht(i) {
ergebnis.entpacken()
} anderenfalls {
12
};
}
benutze std::vgl::Ordnung;
let _mod7 = vec![0; 100].wieder()
.nehme(50)
.zuordnen(|nummer| nummer % 7)
.sammeln::<Vec<i32>>()
.zu_wieder()
.falte(0, |a, nummer| match nummer.vgl(&a) {
Ordnung::Mehr => a - nummer,
Ordnung::Weniger => a + nummer,
Ordnung::Gleich => a,
});
}
}