Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
uni20::async::Defer< T > Class Template Reference

Move-only deferred writer helper for a single WriteBuffer<T>. More...

#include <future_value.hpp>

Public Types

using value_type = T
 

Public Member Functions

 Defer ()=delete
 No default construction.
 
 Defer (Async< T > &w)
 Construct from an Async writer endpoint.
 
 Defer (Defer &&)=default
 Move constructor.
 
 Defer (Defer const &)=delete
 Non-copyable.
 
 Defer (WriteBuffer< T > &&w)
 Construct from an existing write buffer.
 
Defer & operator= (Defer &&)=delete
 Non-move-assignable.
 
Defer & operator= (Defer const &)=delete
 Non-copyable.
 
template<typename U >
requires std::assignable_from<T&, async_value_t<U>>
void operator= (U &&val)
 Schedule assignment through the deferred writer.
 
void release ()
 Release the retained write buffer early.
 
WriteProxy< T > write ()
 Get the WriteBuffer for coroutine-based use.
 
template<typename U >
requires std::constructible_from<T, U&&>
void write_assert (U &&val)
 Write immediately without suspending — asserts write readiness.
 

Detailed Description

template<typename T>
class uni20::async::Defer< T >

Move-only deferred writer helper for a single WriteBuffer<T>.

Template Parameters
TValue type written through the deferred handle.

Member Typedef Documentation

◆ value_type

template<typename T >
using uni20::async::Defer< T >::value_type = T

Constructor & Destructor Documentation

◆ Defer() [1/5]

template<typename T >
uni20::async::Defer< T >::Defer ( Defer< T > &&  )
default

Move constructor.

◆ Defer() [2/5]

template<typename T >
uni20::async::Defer< T >::Defer ( )
delete

No default construction.

◆ Defer() [3/5]

template<typename T >
uni20::async::Defer< T >::Defer ( Defer< T > const &  )
delete

Non-copyable.

◆ Defer() [4/5]

template<typename T >
uni20::async::Defer< T >::Defer ( Async< T > &  w)
inlineexplicit

Construct from an Async writer endpoint.

Parameters
wAsync value whose write buffer should be retained.

◆ Defer() [5/5]

template<typename T >
uni20::async::Defer< T >::Defer ( WriteBuffer< T > &&  w)
inlineexplicit

Construct from an existing write buffer.

Parameters
wWrite buffer to retain.

Member Function Documentation

◆ operator=() [1/3]

template<typename T >
Defer & uni20::async::Defer< T >::operator= ( Defer< T > &&  )
delete

Non-move-assignable.

◆ operator=() [2/3]

template<typename T >
Defer & uni20::async::Defer< T >::operator= ( Defer< T > const &  )
delete

Non-copyable.

◆ operator=() [3/3]

template<typename T >
template<typename U >
requires std::assignable_from<T&, async_value_t<U>>
void uni20::async::Defer< T >::operator= ( U &&  val)
inline

Schedule assignment through the deferred writer.

Template Parameters
USource type.
Parameters
valSource expression to assign.

◆ release()

template<typename T >
void uni20::async::Defer< T >::release ( )
inline

Release the retained write buffer early.

◆ write()

template<typename T >
WriteProxy< T > uni20::async::Defer< T >::write ( )
inline

Get the WriteBuffer for coroutine-based use.

◆ write_assert()

template<typename T >
template<typename U >
requires std::constructible_from<T, U&&>
void uni20::async::Defer< T >::write_assert ( U &&  val)
inline

Write immediately without suspending — asserts write readiness.


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