kokkos-execution
0.0.1
Toggle main menu visibility
Loading...
Searching...
No Matches
enter_scope_sender.hpp
Go to the documentation of this file.
1
// NOLINTBEGIN
2
/*
3
* SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
4
* Copyright (c) 2025 Robert Leahy. All rights reserved.
5
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
*
7
* Licensed under the Apache License, Version 2.0 with LLVM Exceptions (the "License");
8
* you may not use this file except in compliance with the License.
9
* You may obtain a copy of the License at
10
*
11
* https://llvm.org/LICENSE.txt
12
*
13
* Unless required by applicable law or agreed to in writing, software
14
* distributed under the License is distributed on an "AS IS" BASIS,
15
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
* See the License for the specific language governing permissions and
17
* limitations under the License.
18
*/
19
20
#pragma once
21
22
#include <concepts>
23
#include <type_traits>
24
#include <utility>
25
26
#include "
exit_scope_sender.hpp
"
27
#include "stdexec/execution.hpp"
28
29
namespace
experimental::execution
{
30
31
template
<
typename
Sender>
32
concept
enter_scope_sender
= ::STDEXEC::sender<Sender>;
33
34
namespace
detail::exit_scope_sender_of
{
35
36
template
<
typename
Env,
typename
... Args>
37
struct
transform_set_value_impl
;
38
39
template
<
typename
Env, ::exec::exit_scope_sender_in<Env> Sender>
40
struct
transform_set_value_impl
<Env, Sender> {
41
using
type
= ::STDEXEC::completion_signatures<::STDEXEC::set_value_t(Sender)>;
42
};
43
44
template
<
typename
Env>
45
struct
transform_set_value
{
46
template
<
typename
... Args>
47
using
fn
=
transform_set_value_impl
<Env, Args...>
::type
;
48
};
49
50
template
<
typename
T>
51
using
transform_set_error
= ::STDEXEC::completion_signatures<>;
52
53
template
<
typename
Signatures>
54
struct
impl
;
55
56
template
<
typename
Sender>
57
struct
impl
<::STDEXEC::completion_signatures<::STDEXEC::set_value_t(Sender)>> {
58
using
type
= Sender;
59
};
60
61
}
// namespace detail::exit_scope_sender_of
62
63
template
<enter_scope_sender Constructor,
typename
Env>
64
using
exit_scope_sender_of_t
=
detail::exit_scope_sender_of::impl
<::STDEXEC::transform_completion_signatures<
65
::STDEXEC::completion_signatures_of_t<Constructor, Env>,
66
::STDEXEC::completion_signatures<>,
67
detail::exit_scope_sender_of::transform_set_value<Env>::template
fn,
68
detail::exit_scope_sender_of::transform_set_error
,
69
::STDEXEC::completion_signatures<>
70
>>::type;
71
72
template
<
typename
Sender,
typename
Env>
73
concept
enter_scope_sender_in
=
enter_scope_sender<Sender>
&& ::STDEXEC::sender_in<Sender, Env>
74
&&
requires
{
typename
exit_scope_sender_of_t<Sender, Env>
; };
75
76
}
// namespace experimental::execution
77
78
// NOLINTEND
experimental::execution::enter_scope_sender_in
Definition
enter_scope_sender.hpp:73
experimental::execution::enter_scope_sender
Definition
enter_scope_sender.hpp:32
exit_scope_sender.hpp
experimental::execution::detail::exit_scope_sender_of
Definition
enter_scope_sender.hpp:34
experimental::execution::detail::exit_scope_sender_of::transform_set_error
::stdexec::completion_signatures<> transform_set_error
Definition
enter_scope_sender.hpp:51
experimental::execution
Definition
elide.hpp:28
experimental::execution::exit_scope_sender_of_t
detail::exit_scope_sender_of::impl<::stdexec::transform_completion_signatures< ::stdexec::completion_signatures_of_t< Constructor, Env >, ::stdexec::completion_signatures<>, detail::exit_scope_sender_of::transform_set_value< Env >::template fn, detail::exit_scope_sender_of::transform_set_error, ::stdexec::completion_signatures<> > >::type exit_scope_sender_of_t
Definition
enter_scope_sender.hpp:64
experimental::execution::detail::exit_scope_sender_of::impl<::stdexec::completion_signatures<::stdexec::set_value_t(Sender)> >::type
Sender type
Definition
enter_scope_sender.hpp:58
experimental::execution::detail::exit_scope_sender_of::impl
Definition
enter_scope_sender.hpp:54
experimental::execution::detail::exit_scope_sender_of::transform_set_value_impl< Env, Sender >::type
::stdexec::completion_signatures<::stdexec::set_value_t(Sender)> type
Definition
enter_scope_sender.hpp:41
experimental::execution::detail::exit_scope_sender_of::transform_set_value_impl
Definition
enter_scope_sender.hpp:37
experimental::execution::detail::exit_scope_sender_of::transform_set_value
Definition
enter_scope_sender.hpp:45
experimental::execution::detail::exit_scope_sender_of::transform_set_value::fn
transform_set_value_impl< Env, Args... >::type fn
Definition
enter_scope_sender.hpp:47
kokkos-execution
stdexec
P3955
enter_scope_sender.hpp
Generated on
for kokkos-execution by
1.18.0