From 1dc9ec41ccd4a9eed7ae630d0d8f5e75916aedb5 Mon Sep 17 00:00:00 2001
From: HJfod <60038575+HJfod@users.noreply.github.com>
Date: Tue, 14 May 2024 15:02:17 +0300
Subject: [PATCH] add Result::unwrapOrDefault()

---
 loader/include/Geode/utils/Result.hpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/loader/include/Geode/utils/Result.hpp b/loader/include/Geode/utils/Result.hpp
index 4cc1bc25..c9519350 100644
--- a/loader/include/Geode/utils/Result.hpp
+++ b/loader/include/Geode/utils/Result.hpp
@@ -196,6 +196,13 @@ namespace geode {
             return this->Base::value_or(std::forward<U>(val));
         }
 
+        [[nodiscard]] constexpr decltype(auto) unwrapOrDefault() && requires std::is_default_constructible_v<T> {
+            return this->Base::value_or(T());
+        }
+        [[nodiscard]] constexpr decltype(auto) unwrapOrDefault() const& requires std::is_default_constructible_v<T> {
+            return this->Base::value_or(T());
+        }
+
         template <class U>
         [[nodiscard]] constexpr decltype(auto) errorOr(U&& val) && {
             return this->Base::error_or(std::forward<U>(val));