5namespace engine::impl {
10class FutureWaitStrategy;
12enum class [[nodiscard]] EarlyWakeup :
bool {};
14class ContextAccessor {
16 virtual bool IsReady()
const noexcept = 0;
23 virtual EarlyWakeup TryAppendWaiter(TaskContext& waiter) = 0;
27 virtual void RemoveWaiter(TaskContext& waiter)
noexcept = 0;
31 virtual void AfterWait()
noexcept = 0;
35 virtual void RethrowErrorResult()
const = 0;
40 ~ContextAccessor() =
default;