@@ -66,6 +66,7 @@ use crate::port::details::chunk::Chunk;
66
66
use crate :: port:: details:: chunk_details:: ChunkDetails ;
67
67
use crate :: port:: update_connections:: ConnectionFailure ;
68
68
use crate :: raw_sample:: RawSample ;
69
+ use crate :: service:: builder:: publish_subscribe:: CustomPayloadMarker ;
69
70
use crate :: { port:: ReceiveError , request_mut:: RequestMut , response:: Response , service} ;
70
71
71
72
/// Represents an active connection to all [`Server`](crate::port::server::Server)
@@ -77,9 +78,9 @@ use crate::{port::ReceiveError, request_mut::RequestMut, response::Response, ser
77
78
/// [`Server`](crate::port::server::Server)s are informed.
78
79
pub struct PendingResponse <
79
80
Service : crate :: service:: Service ,
80
- RequestPayload : Debug + ZeroCopySend ,
81
+ RequestPayload : Debug + ZeroCopySend + ? Sized ,
81
82
RequestHeader : Debug + ZeroCopySend ,
82
- ResponsePayload : Debug + ZeroCopySend ,
83
+ ResponsePayload : Debug + ZeroCopySend + ? Sized ,
83
84
ResponseHeader : Debug + ZeroCopySend ,
84
85
> {
85
86
pub ( crate ) request :
@@ -92,9 +93,9 @@ pub struct PendingResponse<
92
93
93
94
impl <
94
95
Service : crate :: service:: Service ,
95
- RequestPayload : Debug + ZeroCopySend ,
96
+ RequestPayload : Debug + ZeroCopySend + ? Sized ,
96
97
RequestHeader : Debug + ZeroCopySend ,
97
- ResponsePayload : Debug + ZeroCopySend ,
98
+ ResponsePayload : Debug + ZeroCopySend + ? Sized ,
98
99
ResponseHeader : Debug + ZeroCopySend ,
99
100
> Drop
100
101
for PendingResponse < Service , RequestPayload , RequestHeader , ResponsePayload , ResponseHeader >
@@ -110,9 +111,9 @@ impl<
110
111
111
112
impl <
112
113
Service : crate :: service:: Service ,
113
- RequestPayload : Debug + ZeroCopySend ,
114
+ RequestPayload : Debug + ZeroCopySend + ? Sized ,
114
115
RequestHeader : Debug + ZeroCopySend ,
115
- ResponsePayload : Debug + ZeroCopySend ,
116
+ ResponsePayload : Debug + ZeroCopySend + ? Sized ,
116
117
ResponseHeader : Debug + ZeroCopySend ,
117
118
> Deref
118
119
for PendingResponse < Service , RequestPayload , RequestHeader , ResponsePayload , ResponseHeader >
@@ -125,9 +126,9 @@ impl<
125
126
126
127
impl <
127
128
Service : crate :: service:: Service ,
128
- RequestPayload : Debug + ZeroCopySend ,
129
+ RequestPayload : Debug + ZeroCopySend + ? Sized ,
129
130
RequestHeader : Debug + ZeroCopySend ,
130
- ResponsePayload : Debug + ZeroCopySend ,
131
+ ResponsePayload : Debug + ZeroCopySend + ? Sized ,
131
132
ResponseHeader : Debug + ZeroCopySend ,
132
133
> Debug
133
134
for PendingResponse < Service , RequestPayload , RequestHeader , ResponsePayload , ResponseHeader >
@@ -148,9 +149,9 @@ impl<
148
149
149
150
impl <
150
151
Service : crate :: service:: Service ,
151
- RequestPayload : Debug + ZeroCopySend ,
152
+ RequestPayload : Debug + ZeroCopySend + ? Sized ,
152
153
RequestHeader : Debug + ZeroCopySend ,
153
- ResponsePayload : Debug + ZeroCopySend ,
154
+ ResponsePayload : Debug + ZeroCopySend + ? Sized ,
154
155
ResponseHeader : Debug + ZeroCopySend ,
155
156
> PendingResponse < Service , RequestPayload , RequestHeader , ResponsePayload , ResponseHeader >
156
157
{
@@ -221,7 +222,16 @@ impl<
221
222
. response_receiver
222
223
. receive ( self . request . channel_id )
223
224
}
225
+ }
224
226
227
+ impl <
228
+ Service : crate :: service:: Service ,
229
+ RequestPayload : Debug + ZeroCopySend + ?Sized ,
230
+ RequestHeader : Debug + ZeroCopySend ,
231
+ ResponsePayload : Debug + ZeroCopySend + Sized ,
232
+ ResponseHeader : Debug + ZeroCopySend ,
233
+ > PendingResponse < Service , RequestPayload , RequestHeader , ResponsePayload , ResponseHeader >
234
+ {
225
235
/// Receives a [`Response`] from one of the [`Server`](crate::port::server::Server)s that
226
236
/// received the [`RequestMut`].
227
237
///
@@ -281,3 +291,40 @@ impl<
281
291
}
282
292
}
283
293
}
294
+
295
+ impl <
296
+ Service : crate :: service:: Service ,
297
+ RequestPayload : Debug + ZeroCopySend + ?Sized ,
298
+ RequestHeader : Debug + ZeroCopySend ,
299
+ ResponsePayload : Debug + ZeroCopySend ,
300
+ ResponseHeader : Debug + ZeroCopySend ,
301
+ > PendingResponse < Service , RequestPayload , RequestHeader , [ ResponsePayload ] , ResponseHeader >
302
+ {
303
+ pub fn receive (
304
+ & self ,
305
+ ) -> Result < Option < Response < Service , [ ResponsePayload ] , ResponseHeader > > , ReceiveError > {
306
+ todo ! ( )
307
+ }
308
+ }
309
+
310
+ impl <
311
+ Service : crate :: service:: Service ,
312
+ RequestHeader : Debug + ZeroCopySend ,
313
+ ResponseHeader : Debug + ZeroCopySend ,
314
+ >
315
+ PendingResponse <
316
+ Service ,
317
+ [ CustomPayloadMarker ] ,
318
+ RequestHeader ,
319
+ [ CustomPayloadMarker ] ,
320
+ ResponseHeader ,
321
+ >
322
+ {
323
+ #[ doc( hidden) ]
324
+ pub fn receive_custom_payload (
325
+ & self ,
326
+ ) -> Result < Option < Response < Service , [ CustomPayloadMarker ] , ResponseHeader > > , ReceiveError >
327
+ {
328
+ todo ! ( )
329
+ }
330
+ }
0 commit comments