rouille/examples/src/main.rs

86 lines
2.2 KiB
Rust
Raw Normal View History

2021-09-09 19:40:29 +02:00
rouille::rouille! {
2021-09-09 20:04:10 +02:00
externe cagette rouille;
2021-09-09 19:40:29 +02:00
utilisons std::collections::Dictionnaire comme Dico;
2021-09-10 09:44:28 +02:00
convention CléValeur {
2021-09-09 19:40:29 +02:00
fonction écrire(&soi, clé: Chaine, valeur: Chaine);
2021-09-11 15:55:13 +02:00
fonction lire(&soi, clé: Chaine) -> Résultat<PeutÊtre<&Chaine>, Chaine>;
2021-09-09 19:40:29 +02:00
}
statique mutable DICTIONNAIRE: PeutÊtre<Dico<Chaine, Chaine>> = Rien;
structure Concrète;
2021-09-10 09:44:28 +02:00
réalisation CléValeur pour Concrète {
2021-09-09 19:40:29 +02:00
fonction écrire(&soi, clé: Chaine, valeur: Chaine) {
soit dico = dangereux {
DICTIONNAIRE.prendre_ou_insérer_avec(Défaut::défaut)
2021-09-09 19:40:29 +02:00
};
dico.insérer(clé, valeur);
}
2021-09-11 15:55:13 +02:00
fonction lire(&soi, clé: Chaine) -> Résultat<PeutÊtre<&Chaine>, Chaine> {
si soit Quelque(dico) = dangereux { DICTIONNAIRE.en_réf() } {
Bien(dico.lire(&clé))
} sinon {
Arf("fetchez le dico".vers())
}
2021-09-09 19:40:29 +02:00
}
}
public(cagette) fonction peut_etre(i: u32) -> PeutÊtre<Résultat<u32, Chaine>> {
si i % 2 == 1 {
si i == 42 {
Quelque(Arf(Chaine::depuis("merde")))
} sinon {
Quelque(Bien(33))
}
} sinon {
Rien
}
}
asynchrone fonction exemple() {
}
asynchrone fonction exemple2() {
exemple().attend;
}
fonction principale() {
soit mutable x = 31;
2021-09-11 15:55:13 +02:00
selon x {
2021-09-09 19:40:29 +02:00
42 => {
affiche!("omelette du fromage")
}
_ => affiche!("voila")
}
pour i de 0..10 {
soit val = boucle {
arrête i;
};
2021-09-10 09:38:37 +02:00
2021-09-09 19:40:29 +02:00
tant que x < val {
x += 1;
}
2021-09-10 09:38:37 +02:00
2021-09-09 19:40:29 +02:00
x = si soit Quelque(resultat) = peut_etre(i) {
resultat.déballer()
2021-09-10 09:38:37 +02:00
} sinon {
12
};
2021-09-09 19:40:29 +02:00
}
2021-09-11 15:59:40 +02:00
//secondaire();
2021-09-11 15:59:40 +02:00
}
#[légal(code_inaccessible)]
fonction secondaire() {
merde!("oh non"); // for the true French experience
calisse!("tabernacle"); // for friends speaking fr-ca
oups!("fetchez la vache"); // in SFW contexts
2021-09-09 19:40:29 +02:00
}
}