Skip to content

Commit d9e64ac

Browse files
authored
Create result.hcs
1 parent 95a67d0 commit d9e64ac

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

libs/std/lib/result.hcs

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
fun unwrap_or<T, E>(r: Result<T, E>, domyslna: T) -> T [
2+
match r [
3+
Ok(v) -> [
4+
end v
5+
]
6+
Err(_e) -> [
7+
end domyslna
8+
]
9+
]
10+
]
11+
12+
!! Jak `unwrap_or`, ale dla `Option<T>`.
13+
fun unwrap_or_default<T>(o: Option<T>, domyslna: T) -> T [
14+
match o [
15+
Some(v) -> [
16+
end v
17+
]
18+
None -> [
19+
end domyslna
20+
]
21+
]
22+
]
23+
24+
!! Czy `r` to `Ok(...)` - bez wydobywania wartosci ani rozbijania przez
25+
!! `match`, gdy interesuje nas tylko sam fakt sukcesu/porazki.
26+
fun is_ok<T, E>(r: Result<T, E>) -> Bool [
27+
match r [
28+
Ok(_v) -> [
29+
end true
30+
]
31+
Err(_e) -> [
32+
end false
33+
]
34+
]
35+
]
36+
37+
!! Czy `r` to `Err(...)`.
38+
fun is_err<T, E>(r: Result<T, E>) -> Bool [
39+
match r [
40+
Ok(_v) -> [
41+
end false
42+
]
43+
Err(_e) -> [
44+
end true
45+
]
46+
]
47+
]
48+
49+
!! Czy `o` to `Some(...)`.
50+
fun is_some<T>(o: Option<T>) -> Bool [
51+
match o [
52+
Some(_v) -> [
53+
end true
54+
]
55+
None -> [
56+
end false
57+
]
58+
]
59+
]

0 commit comments

Comments
 (0)