#pragma once #include "TracyAwaitable.hpp" #include namespace tracy { template class Result : public BaseResultType { public: Result(BaseResultType&& result); auto operator co_await(); }; template Result::Result(BaseResultType&& result) : BaseResultType(std::forward(result)) { } template auto Result::operator co_await() { return Awaitable(BaseResultType::operator co_await()); } } template class original_result, class type, class... arguments> struct std::coroutine_traits>, arguments...> { using promise_type = typename coroutine_traits, arguments...>::promise_type; };