diff --git a/loader/include/Geode/utils/fetch.hpp b/loader/include/Geode/utils/fetch.hpp index bcd217c0..a1ce61e1 100644 --- a/loader/include/Geode/utils/fetch.hpp +++ b/loader/include/Geode/utils/fetch.hpp @@ -151,35 +151,8 @@ namespace geode::utils::web { friend class AsyncWebResponse; public: - AsyncWebRequest& then(std::function<void(T)> handle) { - m_request.m_then = [ - converter = m_converter, - handle - ](SentAsyncWebRequest& req, byte_array const& arr) { - auto conv = converter(arr); - if (conv) { - handle(conv.value()); - } else { - req.error("Unable to convert value: " + conv.error()); - } - }; - return m_request; - } - - AsyncWebRequest& then(std::function<void(SentAsyncWebRequest&, T)> handle) { - m_request.m_then = [ - converter = m_converter, - handle - ](SentAsyncWebRequest& req, byte_array const& arr) { - auto conv = converter(arr); - if (conv) { - handle(req, conv.value()); - } else { - req.error("Unable to convert value: " + conv.error()); - } - }; - return m_request; - } + AsyncWebRequest& then(std::function<void(T)> handle); + AsyncWebRequest& then(std::function<void(SentAsyncWebRequest&, T)> handle); }; class GEODE_DLL AsyncWebResponse { @@ -203,5 +176,37 @@ namespace geode::utils::web { return AsyncWebResult(m_request, converter); } }; + + template<class T> + AsyncWebRequest& AsyncWebResult<T>::then(std::function<void(T)> handle) { + m_request.m_then = [ + converter = m_converter, + handle + ](SentAsyncWebRequest& req, byte_array const& arr) { + auto conv = converter(arr); + if (conv) { + handle(conv.value()); + } else { + req.error("Unable to convert value: " + conv.error()); + } + }; + return m_request; + } + + template<class T> + AsyncWebRequest& AsyncWebResult<T>::then(std::function<void(SentAsyncWebRequest&, T)> handle) { + m_request.m_then = [ + converter = m_converter, + handle + ](SentAsyncWebRequest& req, byte_array const& arr) { + auto conv = converter(arr); + if (conv) { + handle(req, conv.value()); + } else { + req.error("Unable to convert value: " + conv.error()); + } + }; + return m_request; + } } diff --git a/loader/src/ui/internal/info/ModInfoLayer.cpp b/loader/src/ui/internal/info/ModInfoLayer.cpp index e16ddad8..615b5173 100644 --- a/loader/src/ui/internal/info/ModInfoLayer.cpp +++ b/loader/src/ui/internal/info/ModInfoLayer.cpp @@ -14,6 +14,7 @@ #include <Geode/binding/SliderTouchLogic.hpp> #include <Geode/binding/GJListLayer.hpp> #include <Geode/binding/CCTextInputNode.hpp> +#include <Geode/loader/Mod.hpp> // TODO: die #undef min