forked from bnjbvr/rouille
-
Notifications
You must be signed in to change notification settings - Fork 2
/
main.rs
85 lines (70 loc) · 3.04 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
irzha::irzha! {
зовнішній ящик irzha;
вжити std::collections::Словник як Слов;
конвенція КлючЗначення {
функція записати(&власний, ключ: Строка, значення: Строка);
функція отримати(&власний, ключ: Строка) -> Результат<Можливо<&Строка>, Строка>;
}
статична змінна СЛОВНИК: Можливо<Слов<Строка, Строка>> = Нічого;
структура Конкретний;
реалізація КлючЗначення для Конкретний {
функція записати(&власний, ключ: Строка, значення: Строка) {
нехай слов = небезпечно {
СЛОВНИК.отримати_або_вставити_із(Default::default)
};
слов.вставити(ключ, значення);
}
функція отримати(&власний, ключ: Строка) -> Результат<Можливо<&Строка>, Строка> {
якщо нехай Дещо(слов) = небезпечно { СЛОВНИК.як_посилання() } {
Файно(слов.отримати(&ключ))
} інакше {
Хиба("перевірте словник".до())
}
}
}
публічна(ящик) функція моливості(i: u32) -> Можливо<Результат<u32, Строка>> {
якщо i % 2 == 1 {
якщо i == 42 {
Дещо(Хиба(Строка::із("лайно")))
} інакше {
Дещо(Файно(33))
}
} інакше {
Нічого
}
}
асинхронна функція приклад() {
}
асинхронна функція приклад2() {
приклад().чекати;
}
функція основна() {
нехай змінна x = 31;
порівняти x {
42 => {
друкувати!("цеглина з лайна")
}
_ => друкувати!("будьмо!")
}
для i у 0..10 {
нехай val = петля {
зупинка i;
};
поки x < val {
x += 1;
}
x = якщо нехай Дещо(результат) = моливості(i) {
результат.розпакувати()
} інакше {
12
};
}
// побічна();
}
#[дозволити(недоступний_код)]
функція побічна() {
лайно!("о ні!"); // for the true Ukraiian experience
дідько!("ну що за люди");
халепа!("корову вкрали"); // in SFW contexts
}
}