26 #include "../coro/data_promise.h"
27 #include "../coro/memory_promise.h"
28 #include "../coro/owning_coroutine_handle.h"
51 template <
typename T >
64 return coroutine{ handle::from_promise( *
this ) };
84 using handle = std::coroutine_handle< promise_type >;
100 [[nodiscard]]
bool done()
const
119 h.promise().iface =
this;
124 if constexpr ( !std::is_void_v< T > )
133 if constexpr ( !std::is_void_v< T > )
149 if ( iface !=
nullptr ) {
199 template <
typename T >
202 h.promise().iface =
this;
constexpr bool done() const
Definition: owning_coroutine_handle.h:70
constexpr promise_type & promise()
Definition: owning_coroutine_handle.h:80
Definition: coroutine.h:53
void tick() override
Definition: coroutine.h:137
std::coroutine_handle< promise_type > handle
Definition: coroutine.h:84
coro::owning_coroutine_handle< promise_type > owning_handle
Definition: coroutine.h:85
coro_state get_state() const override
Definition: coroutine.h:107
bool await_ready() const
Definition: coroutine.h:112
bool done() const
Definition: coroutine.h:100
void await_suspend(auto const &h)
Definition: coroutine.h:117
coroutine(handle const &cor)
Definition: coroutine.h:89
coroutine(coro_state s)
Definition: coroutine.h:95
auto await_resume()
Definition: coroutine.h:122
auto run()
Definition: coroutine.h:128
MIT License.
Definition: base.h:37
status_awaiter fail()
Definition: coroutine.h:215
coro_state
Definition: coroutine.h:36
status_awaiter skip()
Definition: coroutine.h:220
status_awaiter expect(collector &c, bool expr, std::source_location loc=std::source_location::current())
Definition: collect.h:167
Definition: data_promise.h:31
T value
Definition: data_promise.h:38
Definition: memory_promise.h:34
Definition: coroutine.h:56
wait_interface * iface
Definition: coroutine.h:81
std::suspend_always final_suspend() const noexcept
Definition: coroutine.h:72
coroutine get_return_object()
Definition: coroutine.h:62
void unhandled_exception() const
Definition: coroutine.h:77
std::suspend_always initial_suspend() const
Definition: coroutine.h:67
static coroutine get_return_object_on_allocation_failure()
Definition: coroutine.h:57
Definition: coroutine.h:177
void await_resume() const
Definition: coroutine.h:205
coro_state get_state() const override
Definition: coroutine.h:185
coro_state state
Definition: coroutine.h:178
void await_suspend(std::coroutine_handle< T > h)
Definition: coroutine.h:200
status_awaiter(coro_state s)
Definition: coroutine.h:180
bool await_ready() const
Definition: coroutine.h:194
void tick() override
Definition: coroutine.h:190
Definition: coroutine.h:45
virtual void tick()
Definition: coroutine.h:47
virtual ~wait_interface()=default
virtual coro_state get_state() const =0