proxygen
folly::pushmi::detail::transform_on< F, is_many<>, true > Struct Template Reference

#include <transform.h>

Public Member Functions

 transform_on ()=default
 
constexpr transform_on (F f)
 
template<class Out >
auto operator() (Out out) const
 
template<class Out , class V0 , class... VN>
auto operator() (Out &out, V0 &&v0, VN &&...vn)
 

Public Attributes

f_
 

Detailed Description

template<class F>
struct folly::pushmi::detail::transform_on< F, is_many<>, true >

Definition at line 104 of file transform.h.

Constructor & Destructor Documentation

template<class F >
folly::pushmi::detail::transform_on< F, is_many<>, true >::transform_on ( )
default
template<class F >
constexpr folly::pushmi::detail::transform_on< F, is_many<>, true >::transform_on ( f)
inlineexplicit

Definition at line 107 of file transform.h.

107 : f_(std::move(f)) {}
auto f
constexpr detail::Map< Move > move
Definition: Base-inl.h:2567

Member Function Documentation

template<class F >
template<class Out >
auto folly::pushmi::detail::transform_on< F, is_many<>, true >::operator() ( Out  out) const
inline

Definition at line 109 of file transform.h.

References folly::pushmi::make_flow_receiver, folly::gen::move, and folly::pushmi::on_value().

109  {
110  return make_flow_receiver(std::move(out), on_value(*this));
111  }
auto on_value(Fns...fns) -> on_value_fn< Fns... >
Definition: boosters.h:262
constexpr detail::Map< Move > move
Definition: Base-inl.h:2567
PUSHMI_INLINE_VAR constexpr struct folly::pushmi::make_flow_receiver_fn make_flow_receiver
template<class F >
template<class Out , class V0 , class... VN>
auto folly::pushmi::detail::transform_on< F, is_many<>, true >::operator() ( Out &  out,
V0 &&  v0,
VN &&...  vn 
)
inline

Definition at line 113 of file transform.h.

References folly::pushmi::set_value.

113  {
114  using Result = ::folly::pushmi::invoke_result_t<F, V0, VN...>;
115  static_assert(
116  ::folly::pushmi::SemiMovable<Result>,
117  "none of the functions supplied to transform can convert this value");
118  static_assert(
119  ::folly::pushmi::Flow<Out> &&
120  ::folly::pushmi::ReceiveValue<Out, Result>,
121  "Result of value transform cannot be delivered to Out");
122  set_value(out, f_((V0 &&) v0, (VN &&) vn...));
123  }
PUSHMI_INLINE_VAR constexpr __adl::set_value_fn set_value
decltype(folly::pushmi::invoke(std::declval< F >(), std::declval< As >()...)) invoke_result_t
Definition: functional.h:47

Member Data Documentation

template<class F >
F folly::pushmi::detail::transform_on< F, is_many<>, true >::f_

Definition at line 105 of file transform.h.


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