forked from bnjbvr/rouille
-
Notifications
You must be signed in to change notification settings - Fork 6
/
main.rs
85 lines (70 loc) · 2.23 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
rdza::rdza! {
zewnętrzna skrzynka rdza;
użyj standardowe::kolekcje::MapaHaszy jako Mapa;
cecha WartościPoKluczu {
funkcja zapisz(&się, klucz: Ciąg, wartość: Ciąg);
funkcja wczytaj(&się, klucz: Ciąg) -> Wynik<Opcja<&Ciąg>, Ciąg>;
}
statyczna zmienna SŁOWNIK: Opcja<Mapa<Ciąg, Ciąg>> = Żadna;
struktura Słownik;
implementacja WartościPoKluczu dla Słownik {
funkcja zapisz(&się, klucz: Ciąg, wartość: Ciąg) {
niech słownik = niebezpieczne {
SŁOWNIK.wyjmij_lub_wstaw_z(Domyślny::domyślny)
};
słownik.wstaw(klucz, wartość);
}
funkcja wczytaj(&się, klucz: Ciąg) -> Wynik<Opcja<&Ciąg>, Ciąg> {
jeżeli niech Jakiś(słownik) = niebezpieczne { SŁOWNIK.jako_referencja() } {
Dobrze(słownik.wyjmij(&klucz))
} inaczej {
Źle("nie ma słownika".do())
}
}
}
publiczna(skrzynia) funkcja być_może(i: u32) -> Opcja<Wynik<u32, Ciąg>> {
jeżeli i % 2 == 1 {
jeżeli i == 42 {
Jakieś(Źle(Ciąg::z("kurwa")))
} inaczej {
Jakieś(Dobrze(33))
}
} inaczej {
Żadne
}
}
współbieżna funkcja async_przykład() {
}
publiczna współbieżna funkcja async_przykład2() {
async_przykład().zaczekaj;
}
funkcja główna() {
niech zmienna x = 31;
dopasuj x {
42 => {
drukujln!("pierogi")
}
_ => drukujln!("kaszanka")
}
dla i w 0..10 {
niech wartość = zapętl {
przełam i;
};
dopóki x < wartość {
x += 1;
}
x = jeżeli niech Jakiś(wynik) = być_może(i) {
wynik.odpakuj()
} inaczej {
12
};
}
// druga();
}
#[pozwól(nieosiągalny_kod)]
funkcja druga() {
kurwa!("zjebało się"); // for the true Polish experience
jerōnie!("motyka"); // for friends speaking ślōnska gŏdka
panikuj!("motyla noga"); // in SFW contexts
}
}