proxygen
folly::pushmi::detail::receiver_from_impl< Cardinality, IsFlow > Struct Template Reference

#include <extension_operators.h>

Public Types

using MakeReceiver = make_receiver< Cardinality, IsFlow >
 
template<class... AN>
using receiver_type = ::folly::pushmi::invoke_result_t< MakeReceiver &, AN... >
 

Public Member Functions

requires Invocable< MakeReceiver, Ts... > auto operator() (std::tuple< Ts... > args) const
 
 PUSHMI_TEMPLATE (class...Ts, class...Fns, class This=std::enable_if_t< sizeof...(Fns)!=0, receiver_from_impl >)(requires And< SemiMovable< Fns >... > &&Invocable< MakeReceiver
 
Ts &&Invocable< This,::folly::pushmi::invoke_result_t< MakeReceiver, Ts... >, Fns... > auto operator() (std::tuple< Ts... > args, Fns...fns) const
 
requires Receiver< Out > &&And< SemiMovable< Fns >... > auto operator() (Out out, Fns...fns) const
 

Detailed Description

template<class Cardinality, bool IsFlow>
struct folly::pushmi::detail::receiver_from_impl< Cardinality, IsFlow >

Definition at line 79 of file extension_operators.h.

Member Typedef Documentation

template<class Cardinality, bool IsFlow>
using folly::pushmi::detail::receiver_from_impl< Cardinality, IsFlow >::MakeReceiver = make_receiver<Cardinality, IsFlow>

Definition at line 80 of file extension_operators.h.

template<class Cardinality, bool IsFlow>
template<class... AN>
using folly::pushmi::detail::receiver_from_impl< Cardinality, IsFlow >::receiver_type = ::folly::pushmi::invoke_result_t<MakeReceiver&, AN...>

Definition at line 82 of file extension_operators.h.

Member Function Documentation

template<class Cardinality, bool IsFlow>
requires Invocable<MakeReceiver, Ts...> auto folly::pushmi::detail::receiver_from_impl< Cardinality, IsFlow >::operator() ( std::tuple< Ts... >  args) const
inline

Definition at line 85 of file extension_operators.h.

References folly::apply(), folly::gen::move, folly::pushmi::detail::PUSHMI_TEMPLATE(), and folly::pushmi::detail::requires().

86  {
88  }
constexpr detail::Map< Move > move
Definition: Base-inl.h:2567
make_receiver< Cardinality, IsFlow > MakeReceiver
decltype(auto) constexpr apply(F &&func, Tuple &&tuple)
Definition: ApplyTuple.h:87
template<class Cardinality, bool IsFlow>
Ts&& Invocable< This, ::folly::pushmi::invoke_result_t<MakeReceiver, Ts...>, Fns...> auto folly::pushmi::detail::receiver_from_impl< Cardinality, IsFlow >::operator() ( std::tuple< Ts... >  args,
Fns...  fns 
) const
inline

Definition at line 98 of file extension_operators.h.

References folly::gen::move, folly::pushmi::detail::PUSHMI_TEMPLATE(), and folly::pushmi::detail::requires().

98  {
99  return This()(This()(std::move(args)), std::move(fns)...);
100  }
constexpr detail::Map< Move > move
Definition: Base-inl.h:2567
template<class Cardinality, bool IsFlow>
requires Receiver<Out>&& And<SemiMovable<Fns>...> auto folly::pushmi::detail::receiver_from_impl< Cardinality, IsFlow >::operator() ( Out  out,
Fns...  fns 
) const
inline

Definition at line 103 of file extension_operators.h.

References folly::gen::move.

105  {
106  return MakeReceiver()(std::move(out), std::move(fns)...);
107  }
constexpr detail::Map< Move > move
Definition: Base-inl.h:2567
make_receiver< Cardinality, IsFlow > MakeReceiver
template<class Cardinality, bool IsFlow>
folly::pushmi::detail::receiver_from_impl< Cardinality, IsFlow >::PUSHMI_TEMPLATE ( class...  Ts,
class...  Fns,
class This  = std::enable_if_t<sizeof...(Fns) != 0, receiver_from_impl< Cardinality, IsFlow >> 
)

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