@@ -21,10 +21,10 @@ private import Synchronization
2121/// A ``GRPCClient`` communicates to a server via a ``ClientTransport``.
2222///
2323/// You can start RPCs to the server by calling the corresponding method:
24- /// - ``unary(request:descriptor:serializer:deserializer:options:handler :)``
25- /// - ``clientStreaming(request:descriptor:serializer:deserializer:options:handler :)``
26- /// - ``serverStreaming(request:descriptor:serializer:deserializer:options:handler :)``
27- /// - ``bidirectionalStreaming(request:descriptor:serializer:deserializer:options:handler :)``
24+ /// - ``unary(request:descriptor:serializer:deserializer:options:onResponse :)``
25+ /// - ``clientStreaming(request:descriptor:serializer:deserializer:options:onResponse :)``
26+ /// - ``serverStreaming(request:descriptor:serializer:deserializer:options:onResponse :)``
27+ /// - ``bidirectionalStreaming(request:descriptor:serializer:deserializer:options:onResponse :)``
2828///
2929/// However, in most cases you should prefer wrapping the ``GRPCClient`` with a generated stub.
3030///
@@ -247,16 +247,18 @@ public final class GRPCClient: Sendable {
247247 /// - serializer: A request serializer.
248248 /// - deserializer: A response deserializer.
249249 /// - options: Call specific options.
250- /// - handler : A unary response handler.
250+ /// - handleResponse : A unary response handler.
251251 ///
252- /// - Returns: The return value from the `handler `.
252+ /// - Returns: The return value from the `handleResponse `.
253253 public func unary< Request, Response, ReturnValue: Sendable > (
254254 request: ClientRequest < Request > ,
255255 descriptor: MethodDescriptor ,
256256 serializer: some MessageSerializer < Request > ,
257257 deserializer: some MessageDeserializer < Response > ,
258258 options: CallOptions ,
259- handler: @Sendable @escaping ( ClientResponse < Response > ) async throws -> ReturnValue
259+ onResponse handleResponse: @Sendable @escaping (
260+ _ response: ClientResponse < Response >
261+ ) async throws -> ReturnValue
260262 ) async throws -> ReturnValue {
261263 try await self . bidirectionalStreaming (
262264 request: StreamingClientRequest ( single: request) ,
@@ -266,7 +268,7 @@ public final class GRPCClient: Sendable {
266268 options: options
267269 ) { stream in
268270 let singleResponse = await ClientResponse ( stream: stream)
269- return try await handler ( singleResponse)
271+ return try await handleResponse ( singleResponse)
270272 }
271273 }
272274
@@ -278,16 +280,18 @@ public final class GRPCClient: Sendable {
278280 /// - serializer: A request serializer.
279281 /// - deserializer: A response deserializer.
280282 /// - options: Call specific options.
281- /// - handler : A unary response handler.
283+ /// - handleResponse : A unary response handler.
282284 ///
283- /// - Returns: The return value from the `handler `.
285+ /// - Returns: The return value from the `handleResponse `.
284286 public func clientStreaming< Request, Response, ReturnValue: Sendable > (
285287 request: StreamingClientRequest < Request > ,
286288 descriptor: MethodDescriptor ,
287289 serializer: some MessageSerializer < Request > ,
288290 deserializer: some MessageDeserializer < Response > ,
289291 options: CallOptions ,
290- handler: @Sendable @escaping ( ClientResponse < Response > ) async throws -> ReturnValue
292+ onResponse handleResponse: @Sendable @escaping (
293+ _ response: ClientResponse < Response >
294+ ) async throws -> ReturnValue
291295 ) async throws -> ReturnValue {
292296 try await self . bidirectionalStreaming (
293297 request: request,
@@ -297,7 +301,7 @@ public final class GRPCClient: Sendable {
297301 options: options
298302 ) { stream in
299303 let singleResponse = await ClientResponse ( stream: stream)
300- return try await handler ( singleResponse)
304+ return try await handleResponse ( singleResponse)
301305 }
302306 }
303307
@@ -309,24 +313,26 @@ public final class GRPCClient: Sendable {
309313 /// - serializer: A request serializer.
310314 /// - deserializer: A response deserializer.
311315 /// - options: Call specific options.
312- /// - handler : A response stream handler.
316+ /// - handleResponse : A response stream handler.
313317 ///
314- /// - Returns: The return value from the `handler `.
318+ /// - Returns: The return value from the `handleResponse `.
315319 public func serverStreaming< Request, Response, ReturnValue: Sendable > (
316320 request: ClientRequest < Request > ,
317321 descriptor: MethodDescriptor ,
318322 serializer: some MessageSerializer < Request > ,
319323 deserializer: some MessageDeserializer < Response > ,
320324 options: CallOptions ,
321- handler: @Sendable @escaping ( StreamingClientResponse < Response > ) async throws -> ReturnValue
325+ onResponse handleResponse: @Sendable @escaping (
326+ _ response: StreamingClientResponse < Response >
327+ ) async throws -> ReturnValue
322328 ) async throws -> ReturnValue {
323329 try await self . bidirectionalStreaming (
324330 request: StreamingClientRequest ( single: request) ,
325331 descriptor: descriptor,
326332 serializer: serializer,
327333 deserializer: deserializer,
328334 options: options,
329- handler : handler
335+ onResponse : handleResponse
330336 )
331337 }
332338
@@ -341,16 +347,18 @@ public final class GRPCClient: Sendable {
341347 /// - serializer: A request serializer.
342348 /// - deserializer: A response deserializer.
343349 /// - options: Call specific options.
344- /// - handler : A response stream handler.
350+ /// - handleResponse : A response stream handler.
345351 ///
346- /// - Returns: The return value from the `handler `.
352+ /// - Returns: The return value from the `handleResponse `.
347353 public func bidirectionalStreaming< Request, Response, ReturnValue: Sendable > (
348354 request: StreamingClientRequest < Request > ,
349355 descriptor: MethodDescriptor ,
350356 serializer: some MessageSerializer < Request > ,
351357 deserializer: some MessageDeserializer < Response > ,
352358 options: CallOptions ,
353- handler: @Sendable @escaping ( StreamingClientResponse < Response > ) async throws -> ReturnValue
359+ onResponse handleResponse: @Sendable @escaping (
360+ _ response: StreamingClientResponse < Response >
361+ ) async throws -> ReturnValue
354362 ) async throws -> ReturnValue {
355363 let applicableInterceptors = try self . stateMachine. withLock {
356364 try $0. checkExecutableAndGetApplicableInterceptors ( for: descriptor)
@@ -367,7 +375,7 @@ public final class GRPCClient: Sendable {
367375 deserializer: deserializer,
368376 transport: self . transport,
369377 interceptors: applicableInterceptors,
370- handler: handler
378+ handler: handleResponse
371379 )
372380 }
373381}
0 commit comments