xref: /openbmc/sdbusplus/include/sdbusplus/async/stdexec/execution.hpp (revision f083bc1a64e1f94c99fc270b7c0856810f4be638)
1 /*
2  * Copyright (c) 2021-2024 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"
22 #include "__detail/__basic_sender.hpp"
23 #include "__detail/__bulk.hpp"
24 #include "__detail/__completion_signatures.hpp"
25 #include "__detail/__connect_awaitable.hpp"
26 #include "__detail/__continues_on.hpp"
27 #include "__detail/__cpo.hpp"
28 #include "__detail/__debug.hpp"
29 #include "__detail/__domain.hpp"
30 #include "__detail/__ensure_started.hpp"
31 #include "__detail/__env.hpp"
32 #include "__detail/__execute.hpp"
33 #include "__detail/__inline_scheduler.hpp"
34 #include "__detail/__into_variant.hpp"
35 #include "__detail/__intrusive_ptr.hpp"
36 #include "__detail/__intrusive_slist.hpp"
37 #include "__detail/__just.hpp"
38 #include "__detail/__let.hpp"
39 #include "__detail/__meta.hpp"
40 #include "__detail/__on.hpp"
41 #include "__detail/__operation_states.hpp"
42 #include "__detail/__read_env.hpp"
43 #include "__detail/__receiver_adaptor.hpp"
44 #include "__detail/__receivers.hpp"
45 #include "__detail/__run_loop.hpp"
46 #include "__detail/__schedule_from.hpp"
47 #include "__detail/__schedulers.hpp"
48 #include "__detail/__sender_adaptor_closure.hpp"
49 #include "__detail/__senders.hpp"
50 #include "__detail/__split.hpp"
51 #include "__detail/__start_detached.hpp"
52 #include "__detail/__starts_on.hpp"
53 #include "__detail/__stopped_as_error.hpp"
54 #include "__detail/__stopped_as_optional.hpp"
55 #include "__detail/__submit.hpp"
56 #include "__detail/__sync_wait.hpp"
57 #include "__detail/__then.hpp"
58 #include "__detail/__transfer_just.hpp"
59 #include "__detail/__transform_completion_signatures.hpp"
60 #include "__detail/__transform_sender.hpp"
61 #include "__detail/__type_traits.hpp"
62 #include "__detail/__upon_error.hpp"
63 #include "__detail/__upon_stopped.hpp"
64 #include "__detail/__utility.hpp"
65 #include "__detail/__when_all.hpp"
66 #include "__detail/__with_awaitable_senders.hpp"
67 #include "__detail/__write_env.hpp"
68 #include "concepts.hpp"
69 #include "coroutine.hpp"
70 #include "functional.hpp"
71 #include "stop_token.hpp"
72 
73 // For issuing a meaningful diagnostic for the erroneous `snd1 | snd2`.
74 template <stdexec::sender _Ignore, stdexec::sender _Sender>
75     requires stdexec::__ok<stdexec::__bad_pipe_sink_t<_Sender>>
76 auto operator|(_Ignore&&, _Sender&&) noexcept;
77