From 67d26ac6a7c71e7f8f0723efb6c47c297b3b46a3 Mon Sep 17 00:00:00 2001
From: altalk23 <45172705+altalk23@users.noreply.github.com>
Date: Sat, 3 Dec 2022 14:35:28 +0300
Subject: [PATCH] fully fix result impl

---
 loader/include/Geode/utils/Result.hpp | 8 ++++----
 loader/src/utils/cocos.cpp            | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/loader/include/Geode/utils/Result.hpp b/loader/include/Geode/utils/Result.hpp
index 4fd2f43b..56c31ae1 100644
--- a/loader/include/Geode/utils/Result.hpp
+++ b/loader/include/Geode/utils/Result.hpp
@@ -33,7 +33,7 @@ namespace geode {
 
             template <class E2>
                 requires(std::is_constructible_v<E, E2 &&>)
-            explicit constexpr Failure(E2&& e) : m_error(std::forward<E>(e)) {}
+            explicit constexpr Failure(E2&& e) : m_error(std::move(e)) {}
 
             E& error() & noexcept {
                 return m_error;
@@ -65,7 +65,7 @@ namespace geode {
 
             template <class T2>
                 requires(std::is_constructible_v<T, T2 &&>)
-            explicit constexpr Success(T2&& v) : m_value(std::forward<T>(v)) {}
+            explicit constexpr Success(T2&& v) : m_value(std::forward<T2>(v)) {}
 
             T& value() & noexcept {
                 return m_value;
@@ -104,7 +104,7 @@ namespace geode {
 
         template <class E2>
             requires(std::is_constructible_v<E, E2 &&>)
-        constexpr Result(impl::Failure<E2>&& e) : Base(cpp::failure<E>(e.error())) {}
+        constexpr Result(impl::Failure<E2>&& e) : Base(cpp::failure<E>(std::move(e.error()))) {}
 
         template <class T2>
             requires(std::is_constructible_v<T, T2 const&>)
@@ -112,7 +112,7 @@ namespace geode {
 
         template <class T2>
             requires(std::is_constructible_v<T, T2 &&>)
-        constexpr Result(impl::Success<T2>&& s) : Base(s.value()) {}
+        constexpr Result(impl::Success<T2>&& s) : Base(std::move(s.value())) {}
 
         [[nodiscard]] constexpr explicit operator bool() const noexcept {
             return this->operator bool();
diff --git a/loader/src/utils/cocos.cpp b/loader/src/utils/cocos.cpp
index 36cb10f0..ac2a6fef 100644
--- a/loader/src/utils/cocos.cpp
+++ b/loader/src/utils/cocos.cpp
@@ -1,5 +1,5 @@
-#include <Geode/utils/cocos.hpp>
 #include <Geode/modify/LoadingLayer.hpp>
+#include <Geode/utils/cocos.hpp>
 
 USE_GEODE_NAMESPACE();
 
@@ -346,7 +346,7 @@ void geode::cocos::reloadTextures(CreateLayerFunc returnTo) {
     GameManager::get()->reloadAll(false, false, true);
 }
 
-class $modify(LoadingLayer) {
+struct LoadingFinished : Modify<LoadingFinished, LoadingLayer> {
     void loadAssets() {
         // loadFinished is inlined on Macchew OS :sob: