forked from bnjbvr/rouille
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.rs
87 lines (72 loc) · 2.13 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
korrosjon::korrosjon! {
ekstern eske korrosjon;
bruk std::collections::Ordbok som Ordbok;
egenskap Nøkkelverdi {
funksjon skriv(&selv, nøkkel: Streng, verdi: Streng);
funksjon les(&selv, nøkkel: Streng) -> Resultat<Kanskje<&Streng>, Streng>;
}
statisk foranderlig ORDBOK: Kanskje<Ordbok<Streng, Streng>> = Ingenting;
struktur Konkret;
implementer Nøkkelverdi for Konkret {
funksjon skriv(&selv, nøkkel: Streng, verdi: Streng) {
la ordbok = utrygt {
ORDBOK.ta_eller_sett_inn_med(Standard::standard)
};
ordbok.sett_inn(nøkkel, verdi);
}
funksjon les(&selv, nøkkel: Streng) -> Resultat<Kanskje<&Streng>, Streng> {
hvis la Noen(ordbok) = utrygt { ORDBOK.som_ref() } {
Bra(ordbok.les(&nøkkel))
} ellers {
Prob("henting av ordbok".til())
}
}
}
offentlig(eske) funksjon kanskje(i: u32) -> Kanskje<Resultat<u32, Streng>> {
hvis i % 2 == 1 {
hvis i == 42 {
Noen(Prob(Streng::fra("merav")))
} ellers {
Noen(Bra(33))
}
} ellers {
Ingenting
}
}
asynkron funksjon eksempel() {
}
asynkron funksjon eksempel2() {
eksempel().avvent;
}
funksjon hoved() {
la foranderlig x = 31;
sammenlign x {
42 => {
skrivlinje!("vaffel med brunost")
}
_ => skrivlinje!("jepsipepsi")
}
for i av 0..10 {
la verdi = løkke {
bryt i;
};
imens ingen x < verdi {
x += 1;
}
x = hvis la Noen(resultat) = kanskje(i) {
resultat.pakk_opp()
} ellers {
12
};
}
//sekundær();
}
#[tillat(uoppnåelig_kode)]
funksjon sekundær() {
panikk!("å nei");
dritt!("drittkoav");
faen!("fy faen");
ops!("ops, dette gikk galt");
uff!("uff, dette var ikke bra");
}
}