forked from bnjbvr/rouille
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.rs
85 lines (70 loc) · 2.17 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
ruggine::ruggine! {
esterna cassa ruggine;
usa std::collections::HashMap come Calepino;
tratto ValoreChiave {
funzione scrivi(&séstesso, chiave: Catena, valore: Catena);
funzione ottieni(&séstesso, chiave: Catena) -> Risultato<Opzione<&Catena>, Catena>;
}
statico mutevole DIZIONARIO: Opzione<Calepino<Catena, Catena>> = Nessun;
struttura Concreto;
implementazione ValoreChiave per Concreto {
funzione scrivi(&séstesso, chiave: Catena, valore: Catena) {
sia calepino = pericoloso {
DIZIONARIO.ottieni_o_inserisci_con(Predefinito::predefinito)
};
calepino.inserisci(chiave, valore);
}
funzione ottieni(&séstesso, chiave: Catena) -> Risultato<Opzione<&Catena>, Catena> {
se sia Qualche(calepino) = pericoloso { DIZIONARIO.come_riferimento() } {
Buono(calepino.ottieni(&chiave))
} altrimenti {
Azz("mannaggia il calepino".verso())
}
}
}
pubblico(cassa) funzione opzione(i: u32) -> Opzione<Risultato<u32, Catena>> {
se i % 2 == 1 {
se i == 42 {
Qualche(Azz(Catena::da("merda")))
} altrimenti {
Qualche(Buono(33))
}
} altrimenti {
Nessun
}
}
asincrono funzione esempio() {
}
asincrono funzione esempio2() {
esempio().aspetta;
}
funzione principale() {
sia mutevole x = 31;
combacia x {
42 => {
affiggi!("pasta al sugo")
}
_ => affiggi!("mamma mia")
}
per i in 0..10 {
sia val = ciclo {
ferma i;
};
fin che x < val {
x += 1;
}
x = se sia Qualche(risultato) = opzione(i) {
risultato.disimballa()
} altrimenti {
12
};
}
//secondaire();
}
#[consenti(codice_irragiungibile)]
funzione secondaria() {
merda!("mannaggia");
cazzo!("diamine");
ops!("perbacco"); // in SFW contexts
}
}