#pragma once #include "prim/seadDelegate.h" #include "prim/seadNamable.h" namespace sead { class Job : public INamable { public: virtual ~Job(); virtual void invoke() = 0; }; template class Job0 : public Job { public: Job0(const Delegate& delegate) : mDelegate(delegate) {} void invoke() override { mDelegate.invoke(); } protected: Delegate mDelegate; }; } // namespace sead