#ifndef PROXYUTILS_H #define PROXYUTILS_H #include #include "organizerproxy.h" namespace MOShared { template auto callIfPluginActive(OrganizerProxy* proxy, Fn&& callback, T defaultReturn = T{}) { return [fn = std::forward(callback), proxy, defaultReturn](auto&& ...args) { if (proxy->isPluginEnabled(proxy->plugin())) { return fn(std::forward(args)...); } else { if constexpr (!std::is_same_v, decltype(args)... >, void>) { return defaultReturn; } } }; } } #endif