Skip to content

Commit 962d634

Browse files
authored
Update parameter labels for GRPCClient (#2137)
Motivation: The updated generated code added parameter labels to the handler passed to each method of the GRPCClient. This was done purposefully to improve readability. We haven't as yet actually updated the client to use the new labels. Modifications: - Update param labels in GRPCClient Result: New generated code compiles
1 parent 0fc4956 commit 962d634

File tree

2 files changed

+32
-24
lines changed

2 files changed

+32
-24
lines changed

Sources/GRPCCore/Documentation.docc/Development/Design.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,10 +159,10 @@ can either be applied to all RPCs or to specific services.
159159
The call layer includes a concrete ``GRPCClient`` which provides API to execute all
160160
four types of RPC against a ``ClientTransport``. These methods are:
161161

162-
- ``GRPCClient/unary(request:descriptor:serializer:deserializer:options:handler:)``,
163-
- ``GRPCClient/clientStreaming(request:descriptor:serializer:deserializer:options:handler:)``,
164-
- ``GRPCClient/serverStreaming(request:descriptor:serializer:deserializer:options:handler:)``, and
165-
- ``GRPCClient/bidirectionalStreaming(request:descriptor:serializer:deserializer:options:handler:)``.
162+
- ``GRPCClient/unary(request:descriptor:serializer:deserializer:options:onResponse:)``,
163+
- ``GRPCClient/clientStreaming(request:descriptor:serializer:deserializer:options:onResponse:)``,
164+
- ``GRPCClient/serverStreaming(request:descriptor:serializer:deserializer:options:onResponse:)``, and
165+
- ``GRPCClient/bidirectionalStreaming(request:descriptor:serializer:deserializer:options:onResponse:)``.
166166

167167
As lower level methods they require you to pass in a serializer and
168168
deserializer, as well as the descriptor of the method being called. Each method

Sources/GRPCCore/GRPCClient.swift

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)