1 /* 2 * Copyright (c) 2025 NVIDIA Corporation 3 * 4 * Licensed under the Apache License Version 2.0 with LLVM Exceptions 5 * (the "License"); you may not use this file except in compliance with 6 * the License. You may obtain a copy of the License at 7 * 8 * https://llvm.org/LICENSE.txt 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 #pragma once 17 18 #include "__detail/__execution_fwd.hpp" 19 20 // include these after __execution_fwd.hpp 21 #include "__detail/__as_awaitable.hpp" // IWYU pragma: export 22 #include "__detail/__basic_sender.hpp" // IWYU pragma: export 23 #include "__detail/__bulk.hpp" // IWYU pragma: export 24 #include "__detail/__completion_signatures.hpp" // IWYU pragma: export 25 #include "__detail/__connect_awaitable.hpp" // IWYU pragma: export 26 #include "__detail/__continues_on.hpp" // IWYU pragma: export 27 #include "__detail/__cpo.hpp" // IWYU pragma: export 28 #include "__detail/__debug.hpp" // IWYU pragma: export 29 #include "__detail/__domain.hpp" // IWYU pragma: export 30 #include "__detail/__ensure_started.hpp" // IWYU pragma: export 31 #include "__detail/__env.hpp" // IWYU pragma: export 32 #include "__detail/__execute.hpp" // IWYU pragma: export 33 #include "__detail/__execution_legacy.hpp" // IWYU pragma: export 34 #include "__detail/__inline_scheduler.hpp" // IWYU pragma: export 35 #include "__detail/__into_variant.hpp" // IWYU pragma: export 36 #include "__detail/__intrusive_ptr.hpp" // IWYU pragma: export 37 #include "__detail/__intrusive_slist.hpp" // IWYU pragma: export 38 #include "__detail/__just.hpp" // IWYU pragma: export 39 #include "__detail/__let.hpp" // IWYU pragma: export 40 #include "__detail/__meta.hpp" // IWYU pragma: export 41 #include "__detail/__on.hpp" // IWYU pragma: export 42 #include "__detail/__operation_states.hpp" // IWYU pragma: export 43 #include "__detail/__read_env.hpp" // IWYU pragma: export 44 #include "__detail/__receivers.hpp" // IWYU pragma: export 45 #include "__detail/__receiver_adaptor.hpp" // IWYU pragma: export 46 #include "__detail/__receiver_ref.hpp" // IWYU pragma: export 47 #include "__detail/__run_loop.hpp" // IWYU pragma: export 48 #include "__detail/__schedule_from.hpp" // IWYU pragma: export 49 #include "__detail/__schedulers.hpp" // IWYU pragma: export 50 #include "__detail/__senders.hpp" // IWYU pragma: export 51 #include "__detail/__sender_adaptor_closure.hpp" // IWYU pragma: export 52 #include "__detail/__split.hpp" // IWYU pragma: export 53 #include "__detail/__start_detached.hpp" // IWYU pragma: export 54 #include "__detail/__starts_on.hpp" // IWYU pragma: export 55 #include "__detail/__stopped_as_error.hpp" // IWYU pragma: export 56 #include "__detail/__stopped_as_optional.hpp" // IWYU pragma: export 57 #include "__detail/__submit.hpp" // IWYU pragma: export 58 #include "__detail/__sync_wait.hpp" // IWYU pragma: export 59 #include "__detail/__then.hpp" // IWYU pragma: export 60 #include "__detail/__transfer_just.hpp" // IWYU pragma: export 61 #include "__detail/__transform_sender.hpp" // IWYU pragma: export 62 #include "__detail/__transform_completion_signatures.hpp" // IWYU pragma: export 63 #include "__detail/__type_traits.hpp" // IWYU pragma: export 64 #include "__detail/__upon_error.hpp" // IWYU pragma: export 65 #include "__detail/__upon_stopped.hpp" // IWYU pragma: export 66 #include "__detail/__unstoppable.hpp" // IWYU pragma: export 67 #include "__detail/__utility.hpp" // IWYU pragma: export 68 #include "__detail/__when_all.hpp" // IWYU pragma: export 69 #include "__detail/__with_awaitable_senders.hpp" // IWYU pragma: export 70 #include "__detail/__write_env.hpp" // IWYU pragma: export 71 72 #include "functional.hpp" // IWYU pragma: export 73 #include "concepts.hpp" // IWYU pragma: export 74 #include "coroutine.hpp" // IWYU pragma: export 75 #include "stop_token.hpp" // IWYU pragma: export 76 77 // For issuing a meaningful diagnostic for the erroneous `snd1 | snd2`. 78 template <stdexec::sender _Ignore, stdexec::sender _Sender> 79 requires stdexec::__ok<stdexec::__bad_pipe_sink_t<_Sender>> 80 auto operator|(_Ignore&&, _Sender&&) noexcept; 81