uvco 0.1
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
uvco::Generator< T >::YieldAwaiter_ Struct Reference
Collaboration diagram for uvco::Generator< T >::YieldAwaiter_:
Collaboration graph
[legend]

Public Member Functions

 YieldAwaiter_ (PromiseCore_ &core)
 
bool await_ready () const
 
bool await_suspend (std::coroutine_handle<> handle)
 
void await_resume ()
 

Public Attributes

PromiseCore_core_
 

Detailed Description

template<typename T>
struct uvco::Generator< T >::YieldAwaiter_

A YieldAwaiter_ suspends a coroutine returning a MultiPromise (i.e. a generator) and resumes it when the value is read by the awaiting coroutine.

Constructor & Destructor Documentation

◆ YieldAwaiter_()

template<typename T >
uvco::Generator< T >::YieldAwaiter_::YieldAwaiter_ ( PromiseCore_ core)
inlineexplicit
324: core_{core} {}
PromiseCore_ & core_
Definition multipromise.h:337

Member Function Documentation

◆ await_ready()

template<typename T >
bool uvco::Generator< T >::YieldAwaiter_::await_ready ( ) const
inline
326{ return !core_.slot.has_value(); }
std::optional< std::variant< T, std::exception_ptr > > slot
The slot contains the result once obtained.
Definition promise_core.h:184

◆ await_resume()

template<typename T >
void uvco::Generator< T >::YieldAwaiter_::await_resume ( )
inline
333 {
334 // Returning into the generator coroutine
335 }

◆ await_suspend()

template<typename T >
bool uvco::Generator< T >::YieldAwaiter_::await_suspend ( std::coroutine_handle<>  handle)
inline
328 {
329 core_.suspendGenerator(handle);
330 return true;
331 }
void suspendGenerator(std::coroutine_handle<> handle)
Definition multipromise.h:80

Member Data Documentation

◆ core_

template<typename T >
PromiseCore_& uvco::Generator< T >::YieldAwaiter_::core_

The documentation for this struct was generated from the following file: