IceShard 1
A personal game engine project, with development focused on 2D/2.5D games.
Loading...
Searching...
No Matches
ice::TaskExpectedPromise< Result, ErrorType > Struct Template Referencefinal

#include <ice/task_expected_promise.hxx>

Inheritance diagram for ice::TaskExpectedPromise< Result, ErrorType >:
ice::TaskInfoPromise< ice::TaskExpected< Result, ErrorType > > ice::TaskPromise< Result > ice::TaskPromiseBase

Classes

struct  ExpectedFinalAwaiter

Public Member Functions

 TaskExpectedPromise () noexcept
 ~TaskExpectedPromise () noexcept
auto get_return_object () noexcept -> ice::TaskExpected< Result, ErrorType >
constexpr auto final_suspend () noexcept
template<typename TypeExpected>
requires (std::is_same_v<ice::clean_type<TypeExpected>, ice::Expected<Result, ErrorType>>)
void return_value (TypeExpected &&expected) noexcept(std::is_nothrow_move_constructible_v< Result >)
void return_value (ErrorType error) noexcept
void return_value (Result const &value) noexcept(std::is_nothrow_copy_constructible_v< Result >)
void return_value (Result &&value) noexcept(std::is_nothrow_move_constructible_v< Result >)
auto expected () noexcept -> ice::Expected< Result, ErrorType >
auto expected_moved () noexcept -> ice::Expected< Result, ErrorType >
auto result () noexcept -> Result &
Public Member Functions inherited from ice::TaskInfoPromise< ice::TaskExpected< Result, ErrorType > >
 TaskInfoPromise () noexcept=default
 ~TaskInfoPromise () noexcept
auto initial_suspend () const noexcept
auto final_suspend () const noexcept
Public Member Functions inherited from ice::TaskPromise< Result >
auto get_return_object () noexcept -> ice::Task< Result >
void return_value (Other &&value) noexcept
auto result () &noexcept -> Result &
Public Member Functions inherited from ice::TaskPromiseBase
auto initial_suspend () const noexcept
auto final_suspend () const noexcept
auto set_continuation (ice::coroutine_handle<> coro) noexcept
auto continuation () const noexcept -> ice::coroutine_handle<>
void unhandled_exception () const noexcept
auto operator new (size_t size) noexcept -> void *
void operator delete (void *ptr) noexcept

Public Attributes

union { 
   char   _value [sizeof(Result)] 
   ErrorType   _error_value 
}; 
ErrorType * _error_pointer { &_error_value }
std::coroutine_handle _error_continuation { std::noop_coroutine() }
Public Attributes inherited from ice::TaskInfoPromise< ice::TaskExpected< Result, ErrorType > >
ice::TaskInfo_info

Additional Inherited Members

Public Types inherited from ice::TaskPromiseBase
using TaskDebugAllocator = ice::detail::TaskDebugAllocator
Protected Member Functions inherited from ice::TaskPromiseBase
 TaskPromiseBase () noexcept=default

Constructor & Destructor Documentation

◆ TaskExpectedPromise()

template<typename Result, typename ErrorType>
ice::TaskExpectedPromise< Result, ErrorType >::TaskExpectedPromise ( )
inlinenoexcept

◆ ~TaskExpectedPromise()

template<typename Result, typename ErrorType>
ice::TaskExpectedPromise< Result, ErrorType >::~TaskExpectedPromise ( )
inlinenoexcept

Member Function Documentation

◆ expected()

template<typename Result, typename ErrorType>
auto ice::TaskExpectedPromise< Result, ErrorType >::expected ( ) -> ice::Expected< Result, ErrorType >
inlinenoexcept

◆ expected_moved()

template<typename Result, typename ErrorType>
auto ice::TaskExpectedPromise< Result, ErrorType >::expected_moved ( ) -> ice::Expected< Result, ErrorType >
inlinenoexcept

◆ final_suspend()

template<typename Result, typename ErrorType>
auto ice::TaskExpectedPromise< Result, ErrorType >::final_suspend ( )
inlineconstexprnoexcept

◆ get_return_object()

template<typename Result, typename ErrorType>
auto ice::TaskExpectedPromise< Result, ErrorType >::get_return_object ( ) -> ice::TaskExpected< Result, ErrorType >
inlinenoexcept

◆ result()

template<typename Result, typename ErrorType>
auto ice::TaskExpectedPromise< Result, ErrorType >::result ( ) -> Result &
inlinenoexcept

◆ return_value() [1/4]

template<typename Result, typename ErrorType>
void ice::TaskExpectedPromise< Result, ErrorType >::return_value ( ErrorType error)
inlinenoexcept

◆ return_value() [2/4]

template<typename Result, typename ErrorType>
void ice::TaskExpectedPromise< Result, ErrorType >::return_value ( Result && value)
inlinenoexcept

◆ return_value() [3/4]

template<typename Result, typename ErrorType>
void ice::TaskExpectedPromise< Result, ErrorType >::return_value ( Result const & value)
inlinenoexcept

◆ return_value() [4/4]

template<typename Result, typename ErrorType>
template<typename TypeExpected>
requires (std::is_same_v<ice::clean_type<TypeExpected>, ice::Expected<Result, ErrorType>>)
void ice::TaskExpectedPromise< Result, ErrorType >::return_value ( TypeExpected && expected)
inlinenoexcept

Member Data Documentation

◆ [union]

union { ... } ice::TaskExpectedPromise< Result, ErrorType >

◆ _error_continuation

template<typename Result, typename ErrorType>
std::coroutine_handle ice::TaskExpectedPromise< Result, ErrorType >::_error_continuation { std::noop_coroutine() }

◆ _error_pointer

template<typename Result, typename ErrorType>
ErrorType* ice::TaskExpectedPromise< Result, ErrorType >::_error_pointer { &_error_value }

◆ _error_value

template<typename Result, typename ErrorType>
ErrorType ice::TaskExpectedPromise< Result, ErrorType >::_error_value

◆ _value

template<typename Result, typename ErrorType>
char ice::TaskExpectedPromise< Result, ErrorType >::_value[sizeof(Result)]

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