7template<concepts::ClassType Promise>
10 template<
typename OtherPromise>
13 m_continuation = handle;
15 if constexpr (
requires(OtherPromise& other) {
22 m_stopped_handler = default_unhandled_stopped;
25 if constexpr (
requires(OtherPromise& other,
Error error) {
33 m_error_handler = default_unhandled_error;
40 return m_error_handler(m_continuation.address(), util::move(error));
43 template<
typename Value>
45 return as_awaitable(util::forward<Value>(value),
static_cast<Promise&
>(*
this));
#define DI_ASSERT(...)
Definition assert_bool.h:7
Definition with_awaitable_senders.h:8
auto unhandled_error(Error error) -> CoroutineHandle<>
Definition with_awaitable_senders.h:39
auto await_transform(Value &&value) -> decltype(auto)
Definition with_awaitable_senders.h:44
void set_continuation(CoroutineHandle< OtherPromise > handle)
Definition with_awaitable_senders.h:12
auto unhandled_stopped() -> CoroutineHandle<>
Definition with_awaitable_senders.h:38
auto continuation() const -> CoroutineHandle<>
Definition with_awaitable_senders.h:37
Definition operations.h:99
constexpr as_awaitable_ns::Function as_awaitable
Definition as_awaitable.h:102
void unreachable()
Definition unreachable.h:4
StatusCode< Erased< long > > Error
Definition error.h:8
Definition zstring_parser.h:9
std::coroutine_handle< Promise > CoroutineHandle
Definition coroutine.h:164