roest/examples/src/main.rs

81 lines
2.1 KiB
Rust
Raw Normal View History

2021-09-11 16:08:47 +02:00
roest::roest! {
extern krat roest;
2021-09-09 20:04:10 +02:00
2021-09-11 16:08:47 +02:00
gebruik std::collections::Woordenboek zoals Wbk;
2021-09-09 19:40:29 +02:00
2021-09-11 16:08:47 +02:00
karaktereigenschap SleutelWaarde {
functie schrijf(&zelf, sleutel: Keten, waarde: Keten);
functie lees(&zelf, sleutel: Keten) -> Resultaat<Mogelijkheid<&Keten>, Keten>;
2021-09-09 19:40:29 +02:00
}
2021-09-11 16:08:47 +02:00
vast veranderlijk WOORDENBOEK: Mogelijkheid<Wbk<Keten, Keten>> = Geen;
2021-09-09 19:40:29 +02:00
2021-09-11 16:08:47 +02:00
structuur Concreet;
2021-09-09 19:40:29 +02:00
2021-09-11 16:08:47 +02:00
uitwerking SleutelWaarde voor Concreet {
functie schrijf(&zelf, sleutel: Keten, waarde: Keten) {
laat wk = gevaarlijk {
WOORDENBOEK.verkrijg_of_voeg_toe_met(Standaard::standaard)
2021-09-09 19:40:29 +02:00
};
2021-09-11 16:08:47 +02:00
wk.voeg_in(sleutel, waarde);
2021-09-09 19:40:29 +02:00
}
functie lees(&zelf, sleutel: Keten) -> Resultaat<Mogelijkheid<&Keten>, Keten> {
// laat wk = gevaarlijk {
// WOORDENBOEK.verkrijg_of_voeg_toe_met(Standaard::standaard)
// };
// wk.verkrijg(&sleutel)
als laat Enige(wbk) = gevaarlijk { WOORDENBOEK.als_verw() } {
Goed(wbk.verkrijg(&sleutel))
} anders {
Ft("ophalen uit woordenboek".tot())
}
2021-09-09 19:40:29 +02:00
}
}
2021-09-11 16:08:47 +02:00
openbaar(krat) functie misschien(i: u32) -> Mogelijkheid<Resultaat<u32, Keten>> {
als i % 2 == 1 {
als i == 42 {
Enige(Ft(Keten::van("poep")))
} anders {
Enige(Goed(33))
2021-09-09 19:40:29 +02:00
}
2021-09-11 16:08:47 +02:00
} anders {
Geen
2021-09-09 19:40:29 +02:00
}
}
2021-09-11 16:08:47 +02:00
gelijktijdige functie voorbeeld() {
2021-09-09 19:40:29 +02:00
}
2021-09-11 16:08:47 +02:00
gelijktijdige functie voorbeeld2() {
voorbeeld().wacht_af;
2021-09-09 19:40:29 +02:00
}
2021-09-11 16:08:47 +02:00
functie hoofd() {
laat veranderlijk x = 31;
2021-09-09 19:40:29 +02:00
2021-09-11 16:08:47 +02:00
gelijkend x {
2021-09-09 19:40:29 +02:00
42 => {
2021-09-11 16:08:47 +02:00
schrijfrgl!("pannekoek")
2021-09-09 19:40:29 +02:00
}
2021-09-11 16:08:47 +02:00
_ => schrijfrgl!("zie daar")
2021-09-09 19:40:29 +02:00
}
2021-09-11 16:08:47 +02:00
voor i binnen 0..10 {
laat val = lus {
ontsnap i;
2021-09-09 19:40:29 +02:00
};
2021-09-10 09:38:37 +02:00
2021-09-11 16:08:47 +02:00
zolang x < val {
2021-09-09 19:40:29 +02:00
x += 1;
}
2021-09-10 09:38:37 +02:00
2021-09-11 16:08:47 +02:00
x = als laat Enige(resultaat) = misschien(i) {
resultaat.pak_uit()
} anders {
2021-09-10 09:38:37 +02:00
12
};
2021-09-09 19:40:29 +02:00
}
}
}