projects
/
onyx.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e80d659
)
added: `or_return` to Optional
author
Brendan Hansen
<brendan.f.hansen@gmail.com>
Mon, 27 Feb 2023 00:16:44 +0000
(18:16 -0600)
committer
Brendan Hansen
<brendan.f.hansen@gmail.com>
Mon, 27 Feb 2023 00:16:44 +0000
(18:16 -0600)
core/container/optional.onyx
patch
|
blob
|
history
diff --git
a/core/container/optional.onyx
b/core/container/optional.onyx
index 33aafefb2f0a0ca64aeae2a7509d7ba28281d3e6..e486e911679c957f92847435eb6ee33feb7fcb03 100644
(file)
--- a/
core/container/optional.onyx
+++ b/
core/container/optional.onyx
@@
-83,6
+83,13
@@
Optional :: struct (Value_Type: type_expr) {
return generate();
}
+ or_return :: macro (o: Optional($T)) -> T {
+ value := o;
+ if value.has_value do return value.value;
+
+ return #from_enclosing .{};
+ }
+
hash :: (o: Optional($T/core.hash.Hashable)) -> u32 {
if !o.has_value do return 0;
return core.hash.to_u32(o.value);