27 template <
class Executor>
36 template <
class Executor,
class Out>
43 using typename Out::properties;
46 template <
class Out,
class Executor>
63 template <
class Data,
class V>
65 if (data.via_fn_base_ref().done) {
69 data.via_fn_base_ref().exec,
71 (V &&)
v,
std::move(static_cast<Out&>(data))}));
84 template <
class Data,
class E>
86 if (
data.via_fn_base_ref().done) {
89 data.via_fn_base_ref().done =
true;
91 data.via_fn_base_ref().exec,
104 template <
class Data>
106 if (data.via_fn_base_ref().done) {
109 data.via_fn_base_ref().done =
true;
111 data.via_fn_base_ref().exec,
116 template <
class In,
class ExecutorFactory>
119 template <
class Data>
124 template <
class In,
class ExecutorFactory>
129 auto operator()(Out out)
const {
131 return ::folly::pushmi::detail::receiver_from_fn<In>()(
138 template <
class ExecutorFactory>
143 auto operator()(In in)
const {
146 ::folly::pushmi::detail::submit_transform_out<In>(
155 (
requires Invocable<ExecutorFactory&>&&
157 FifoSequence<invoke_result_t<ExecutorFactory&>>)
158 auto operator()(ExecutorFactory ef)
const {
165 namespace operators {
void operator()(any) noexcept
constexpr detail::Map< Move > move
auto on_executor(Fn fn) -> on_executor_fn< Fn >
PUSHMI_INLINE_VAR constexpr __adl::set_error_fn set_error
—— Concurrent Priority Queue Implementation ——
requires E e noexcept(noexcept(s.error(std::move(e))))
requires And< SemiMovable< VN >... > &&SemiMovable< E > auto error(E e)
auto operator()(Data &) const
void operator()(Data &data) const
constexpr auto data(C &c) -> decltype(c.data())
requires requires(::folly::pushmi::invoke(std::declval< F >(), std::get< Is >(std::declval< Tuple >())...))) const expr decltype(auto) apply_impl(F &&f
#define PUSHMI_INLINE_VAR
PUSHMI_INLINE_VAR constexpr struct folly::pushmi::detail::sender_from_fn sender_from
void operator()(Data &data, V &&v) const
PUSHMI_INLINE_VAR constexpr __adl::set_value_fn set_value
auto via(Executor *x, Func &&func) -> Future< typename isFutureOrSemiFuture< decltype(std::declval< Func >()())>::Inner >
void operator()(Data &data, E e) const noexcept
PUSHMI_INLINE_VAR constexpr __adl::do_submit_fn submit
PUSHMI_TEMPLATE(class In, class Out, bool SenderRequires, bool SingleSenderRequires, bool TimeSingleSenderRequires)(requires Sender< In > &&Receiver< Out >) constexpr bool sender_requires_from()
via_fn_base & via_fn_base_ref()
PUSHMI_INLINE_VAR constexpr struct folly::pushmi::make_receiver_fn make_receiver
via_fn_data(Out out, Executor exec)
auto make_via_fn_data(Out out, Executor ex) -> via_fn_data< Executor, Out >
PUSHMI_INLINE_VAR constexpr __adl::set_done_fn set_done