From 7fbde4b4ea2d7d7a1c1a179b8cd7ae03b5b7a57a Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 26 Feb 2023 18:16:44 -0600 Subject: [PATCH] added: `or_return` to Optional --- core/container/optional.onyx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/container/optional.onyx b/core/container/optional.onyx index 33aafefb..e486e911 100644 --- 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); -- 2.25.1