a mini social media app for small communities
1module util
2
3@[inline]
4pub fn map_or[T, R](val ?T, mapper fn (T) R, or_else R) R {
5 return if val == none { or_else } else { mapper(val) }
6}
7
8@[inline]
9pub fn map_or_throw[T, R](val ?T, mapper fn (T) R) R {
10 return if val == none { panic('value was none: ${val}') } else { mapper(val) }
11}
12
13@[inline]
14pub fn map_or_opt[T, R](val ?T, mapper fn (T) ?R, or_else ?R) ?R {
15 return if val == none { or_else } else { mapper(val) }
16}
17
18@[inline]
19pub fn or_throw[T](val ?T) T {
20 return if val == none { panic('value was none: ${val}') } else { val }
21}