1717#ifndef STDEXEC_SYSTEM_CONTEXT_REPLACEABILITY_API_H
1818#define STDEXEC_SYSTEM_CONTEXT_REPLACEABILITY_API_H
1919
20- #include " stdexec/__detail/__execution_fwd.hpp"
21-
22- #include < typeindex>
20+ #include < cstdint>
21+ #include < exception>
2322
2423struct __uuid {
25- uint64_t __parts1;
26- uint64_t __parts2;
24+ std:: uint64_t __parts1;
25+ std:: uint64_t __parts2;
2726
2827friend bool operator ==(__uuid, __uuid)noexcept =default ;
2928};
@@ -37,7 +36,8 @@ namespace exec::system_context_replaceability {
3736template <__uuid X>
3837using __check_constexpr_uuid =void ;
3938
40- // ! Concept for a queryable interface. Ensures that the interface has a `__interface_identifier` member.
39+ // ! Concept for a queryable interface. Ensures that the interface has a `__interface_identifier`
40+ // ! member.
4141template <typename _T>
4242concept __queryable_interface =
4343requires () {typename __check_constexpr_uuid<_T::__interface_identifier>; };
@@ -49,8 +49,8 @@ namespace exec::system_context_replaceability {
4949__query_system_context_interface (_Interface::__interface_identifier));
5050 }
5151
52- // / Interface for completing a sender operation.
53- // /Backend will call frontend though this interface for completing the `schedule` and `schedule_bulk` operations.
52+ // / Interface for completing a sender operation. Backend will call frontend though this interface
53+ // / for completing the `schedule` and `schedule_bulk` operations.
5454struct receiver {
5555virtual ~receiver () =default ;
5656
@@ -65,14 +65,14 @@ namespace exec::system_context_replaceability {
6565// / Receiver for bulk sheduling operations.
6666struct bulk_item_receiver : receiver {
6767// / Called for each item of a bulk operation, possible on different threads.
68- virtual void start (uint32_t )noexcept = 0;
68+ virtual void start (std:: uint32_t )noexcept = 0;
6969 };
7070
7171// / Describes a storage space.
7272// / Used to pass preallocated storage from the frontend to the backend.
7373struct storage {
7474void * __data;
75- uint32_t __size;
75+ std:: uint32_t __size;
7676 };
7777
7878// / Interface for the system scheduler
@@ -81,10 +81,13 @@ namespace exec::system_context_replaceability {
8181
8282virtual ~system_scheduler () =default ;
8383
84- // / Schedule work on system scheduler, calling `__r` when done and using `__s` for preallocated memory.
84+ // / Schedule work on system scheduler, calling `__r` when done and using `__s` for preallocated
85+ // / memory.
8586virtual void schedule (storage __s, receiver* __r)noexcept = 0;
86- // / Schedule bulk work of size `__n` on system scheduler, calling `__r` for each item and then when done, and using `__s` for preallocated memory.
87- virtual void bulk_schedule (uint32_t __n, storage __s, bulk_item_receiver* __r)noexcept = 0;
87+ // / Schedule bulk work of size `__n` on system scheduler, calling `__r` for each item and then
88+ // / when done, and using `__s` for preallocated memory.
89+ virtual void
90+ bulk_schedule (std::uint32_t __n, storage __s, bulk_item_receiver* __r)noexcept =0 ;
8891 };
8992
9093// / Implementation-defined mechanism for replacing the system scheduler backend at run-time.
@@ -98,4 +101,4 @@ namespace exec::system_context_replaceability {
98101
99102}// namespace exec::system_context_replaceability
100103
101- #endif
104+ #endif