Skip to content

Commit c41e0a7

Browse files
authored
Simplify naming of code gen types (#2116)
Motivation: A number of types are nested within 'CodeGenerationRequest' which make them verbose to type out and a bit of a pain to work with. Modification: Remove the nesting of types. Result: Easier types to work with.
1 parent 6bcdbb2 commit c41e0a7

10 files changed

+301
-317
lines changed

Sources/GRPCCodeGen/CodeGenerationRequest.swift

+218-218
Large diffs are not rendered by default.

Sources/GRPCCodeGen/Internal/Translator/ClientCodeTranslator.swift

+23-23
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ struct ClientCodeTranslator: SpecializedTranslator {
105105

106106
extension ClientCodeTranslator {
107107
private func makeClientProtocol(
108-
for service: CodeGenerationRequest.ServiceDescriptor,
108+
for service: ServiceDescriptor,
109109
in codeGenerationRequest: CodeGenerationRequest
110110
) -> Declaration {
111111
let methods = service.methods.map {
@@ -130,7 +130,7 @@ extension ClientCodeTranslator {
130130
}
131131

132132
private func makeDefaultImplementation(
133-
for service: CodeGenerationRequest.ServiceDescriptor,
133+
for service: ServiceDescriptor,
134134
in codeGenerationRequest: CodeGenerationRequest
135135
) -> Declaration {
136136
let methods = service.methods.map {
@@ -156,7 +156,7 @@ extension ClientCodeTranslator {
156156
}
157157

158158
private func makeSugaredAPI(
159-
forService service: CodeGenerationRequest.ServiceDescriptor,
159+
forService service: ServiceDescriptor,
160160
request: CodeGenerationRequest
161161
) -> Declaration {
162162
let sugaredAPIExtension = Declaration.extension(
@@ -175,7 +175,7 @@ extension ClientCodeTranslator {
175175
}
176176

177177
private func makeSugaredMethodDeclaration(
178-
method: CodeGenerationRequest.ServiceDescriptor.MethodDescriptor,
178+
method: MethodDescriptor,
179179
accessModifier: AccessModifier?
180180
) -> Declaration {
181181
let signature = FunctionSignatureDescription(
@@ -205,7 +205,7 @@ extension ClientCodeTranslator {
205205
}
206206

207207
private func makeParametersForSugaredMethodDeclaration(
208-
method: CodeGenerationRequest.ServiceDescriptor.MethodDescriptor
208+
method: MethodDescriptor
209209
) -> [ParameterDescription] {
210210
var parameters = [ParameterDescription]()
211211

@@ -295,7 +295,7 @@ extension ClientCodeTranslator {
295295
}
296296

297297
private func makeFunctionBodyForSugaredMethodDeclaration(
298-
method: CodeGenerationRequest.ServiceDescriptor.MethodDescriptor
298+
method: MethodDescriptor
299299
) -> [CodeBlock] {
300300
// Produces the following:
301301
//
@@ -375,8 +375,8 @@ extension ClientCodeTranslator {
375375
}
376376

377377
private func makeClientProtocolMethod(
378-
for method: CodeGenerationRequest.ServiceDescriptor.MethodDescriptor,
379-
in service: CodeGenerationRequest.ServiceDescriptor,
378+
for method: MethodDescriptor,
379+
in service: ServiceDescriptor,
380380
from codeGenerationRequest: CodeGenerationRequest,
381381
includeBody: Bool,
382382
accessModifier: AccessModifier? = nil,
@@ -421,8 +421,8 @@ extension ClientCodeTranslator {
421421
}
422422

423423
private func makeClientProtocolMethodCall(
424-
for method: CodeGenerationRequest.ServiceDescriptor.MethodDescriptor,
425-
in service: CodeGenerationRequest.ServiceDescriptor,
424+
for method: MethodDescriptor,
425+
in service: ServiceDescriptor,
426426
from codeGenerationRequest: CodeGenerationRequest
427427
) -> [CodeBlock] {
428428
let functionCall = Expression.functionCall(
@@ -455,8 +455,8 @@ extension ClientCodeTranslator {
455455
}
456456

457457
private func makeParameters(
458-
for method: CodeGenerationRequest.ServiceDescriptor.MethodDescriptor,
459-
in service: CodeGenerationRequest.ServiceDescriptor,
458+
for method: MethodDescriptor,
459+
in service: ServiceDescriptor,
460460
from codeGenerationRequest: CodeGenerationRequest,
461461
includeSerializationParameters: Bool,
462462
includeDefaultCallOptions: Bool,
@@ -487,8 +487,8 @@ extension ClientCodeTranslator {
487487
return parameters
488488
}
489489
private func clientRequestParameter(
490-
for method: CodeGenerationRequest.ServiceDescriptor.MethodDescriptor,
491-
in service: CodeGenerationRequest.ServiceDescriptor
490+
for method: MethodDescriptor,
491+
in service: ServiceDescriptor
492492
) -> ParameterDescription {
493493
let requestType = method.isInputStreaming ? "Streaming" : ""
494494
let clientRequestType = ExistingTypeDescription.member([
@@ -505,8 +505,8 @@ extension ClientCodeTranslator {
505505
}
506506

507507
private func serializerParameter(
508-
for method: CodeGenerationRequest.ServiceDescriptor.MethodDescriptor,
509-
in service: CodeGenerationRequest.ServiceDescriptor
508+
for method: MethodDescriptor,
509+
in service: ServiceDescriptor
510510
) -> ParameterDescription {
511511
return ParameterDescription(
512512
label: "serializer",
@@ -520,8 +520,8 @@ extension ClientCodeTranslator {
520520
}
521521

522522
private func deserializerParameter(
523-
for method: CodeGenerationRequest.ServiceDescriptor.MethodDescriptor,
524-
in service: CodeGenerationRequest.ServiceDescriptor
523+
for method: MethodDescriptor,
524+
in service: ServiceDescriptor
525525
) -> ParameterDescription {
526526
return ParameterDescription(
527527
label: "deserializer",
@@ -535,8 +535,8 @@ extension ClientCodeTranslator {
535535
}
536536

537537
private func bodyParameter(
538-
for method: CodeGenerationRequest.ServiceDescriptor.MethodDescriptor,
539-
in service: CodeGenerationRequest.ServiceDescriptor,
538+
for method: MethodDescriptor,
539+
in service: ServiceDescriptor,
540540
includeDefaultResponseHandler: Bool
541541
) -> ParameterDescription {
542542
let clientStreaming = method.isOutputStreaming ? "Streaming" : ""
@@ -571,7 +571,7 @@ extension ClientCodeTranslator {
571571
}
572572

573573
private func makeClientStruct(
574-
for service: CodeGenerationRequest.ServiceDescriptor,
574+
for service: ServiceDescriptor,
575575
in codeGenerationRequest: CodeGenerationRequest
576576
) -> Declaration {
577577
let clientProperty = Declaration.variable(
@@ -637,8 +637,8 @@ extension ClientCodeTranslator {
637637
}
638638

639639
private func makeClientMethod(
640-
for method: CodeGenerationRequest.ServiceDescriptor.MethodDescriptor,
641-
in service: CodeGenerationRequest.ServiceDescriptor,
640+
for method: MethodDescriptor,
641+
in service: ServiceDescriptor,
642642
from codeGenerationRequest: CodeGenerationRequest
643643
) -> Declaration {
644644
let parameters = self.makeParameters(

Sources/GRPCCodeGen/Internal/Translator/IDLToStructuredSwiftTranslator.swift

+6-6
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ struct IDLToStructuredSwiftTranslator: Translator {
6262
}
6363

6464
private func makeImports(
65-
dependencies: [CodeGenerationRequest.Dependency],
65+
dependencies: [Dependency],
6666
accessLevel: SourceGenerator.Config.AccessLevel,
6767
accessLevelOnImports: Bool
6868
) throws -> [ImportDescription] {
@@ -98,7 +98,7 @@ extension AccessModifier {
9898

9999
extension IDLToStructuredSwiftTranslator {
100100
private func translateImport(
101-
dependency: CodeGenerationRequest.Dependency,
101+
dependency: Dependency,
102102
accessLevelOnImports: Bool
103103
) throws -> ImportDescription {
104104
var importDescription = ImportDescription(
@@ -146,7 +146,7 @@ extension IDLToStructuredSwiftTranslator {
146146

147147
// Verify service enum names are unique.
148148
private func checkServiceEnumNamesAreUnique(
149-
for servicesByGeneratedEnumName: [String: [CodeGenerationRequest.ServiceDescriptor]]
149+
for servicesByGeneratedEnumName: [String: [ServiceDescriptor]]
150150
) throws {
151151
for (generatedEnumName, services) in servicesByGeneratedEnumName {
152152
if services.count > 1 {
@@ -163,7 +163,7 @@ extension IDLToStructuredSwiftTranslator {
163163

164164
// Verify method names are unique within a service.
165165
private func checkMethodNamesAreUnique(
166-
in service: CodeGenerationRequest.ServiceDescriptor
166+
in service: ServiceDescriptor
167167
) throws {
168168
// Check that the method descriptors are unique, by checking that the base names
169169
// of the methods of a specific service are unique.
@@ -206,7 +206,7 @@ extension IDLToStructuredSwiftTranslator {
206206
}
207207

208208
private func checkServiceDescriptorsAreUnique(
209-
_ services: [CodeGenerationRequest.ServiceDescriptor]
209+
_ services: [ServiceDescriptor]
210210
) throws {
211211
var descriptors: Set<String> = []
212212
for service in services {
@@ -227,7 +227,7 @@ extension IDLToStructuredSwiftTranslator {
227227
}
228228
}
229229

230-
extension CodeGenerationRequest.ServiceDescriptor {
230+
extension ServiceDescriptor {
231231
var namespacedGeneratedName: String {
232232
if self.namespace.generatedUpperCase.isEmpty {
233233
return self.name.generatedUpperCase

Sources/GRPCCodeGen/Internal/Translator/ServerCodeTranslator.swift

+20-20
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ struct ServerCodeTranslator: SpecializedTranslator {
107107

108108
extension ServerCodeTranslator {
109109
private func makeStreamingProtocol(
110-
for service: CodeGenerationRequest.ServiceDescriptor
110+
for service: ServiceDescriptor
111111
) -> Declaration {
112112
let methods = service.methods.compactMap {
113113
Declaration.commentable(
@@ -136,8 +136,8 @@ extension ServerCodeTranslator {
136136
}
137137

138138
private func makeStreamingMethodSignature(
139-
for method: CodeGenerationRequest.ServiceDescriptor.MethodDescriptor,
140-
in service: CodeGenerationRequest.ServiceDescriptor,
139+
for method: MethodDescriptor,
140+
in service: ServiceDescriptor,
141141
accessModifier: AccessModifier? = nil
142142
) -> FunctionSignatureDescription {
143143
return FunctionSignatureDescription(
@@ -164,7 +164,7 @@ extension ServerCodeTranslator {
164164
}
165165

166166
private func makeConformanceToRPCServiceExtension(
167-
for service: CodeGenerationRequest.ServiceDescriptor,
167+
for service: ServiceDescriptor,
168168
in codeGenerationRequest: CodeGenerationRequest
169169
) -> Declaration {
170170
let streamingProtocol = self.protocolNameTypealias(service: service, streaming: true)
@@ -179,7 +179,7 @@ extension ServerCodeTranslator {
179179
}
180180

181181
private func makeRegisterRPCsMethod(
182-
for service: CodeGenerationRequest.ServiceDescriptor,
182+
for service: ServiceDescriptor,
183183
in codeGenerationRequest: CodeGenerationRequest
184184
) -> Declaration {
185185
let registerRPCsSignature = FunctionSignatureDescription(
@@ -202,7 +202,7 @@ extension ServerCodeTranslator {
202202
}
203203

204204
private func makeRegisterRPCsMethodBody(
205-
for service: CodeGenerationRequest.ServiceDescriptor,
205+
for service: ServiceDescriptor,
206206
in codeGenerationRequest: CodeGenerationRequest
207207
) -> [CodeBlock] {
208208
let registerHandlerCalls = service.methods.compactMap {
@@ -224,8 +224,8 @@ extension ServerCodeTranslator {
224224
}
225225

226226
private func makeArgumentsForRegisterHandler(
227-
for method: CodeGenerationRequest.ServiceDescriptor.MethodDescriptor,
228-
in service: CodeGenerationRequest.ServiceDescriptor,
227+
for method: MethodDescriptor,
228+
in service: ServiceDescriptor,
229229
from codeGenerationRequest: CodeGenerationRequest
230230
) -> [FunctionArgumentDescription] {
231231
var arguments = [FunctionArgumentDescription]()
@@ -284,7 +284,7 @@ extension ServerCodeTranslator {
284284
}
285285

286286
private func makeServiceProtocol(
287-
for service: CodeGenerationRequest.ServiceDescriptor
287+
for service: ServiceDescriptor
288288
) -> Declaration {
289289
let methods = service.methods.compactMap {
290290
self.makeServiceProtocolMethod(for: $0, in: service)
@@ -309,8 +309,8 @@ extension ServerCodeTranslator {
309309
}
310310

311311
private func makeServiceProtocolMethod(
312-
for method: CodeGenerationRequest.ServiceDescriptor.MethodDescriptor,
313-
in service: CodeGenerationRequest.ServiceDescriptor,
312+
for method: MethodDescriptor,
313+
in service: ServiceDescriptor,
314314
accessModifier: AccessModifier? = nil
315315
) -> Declaration {
316316
let inputStreaming = method.isInputStreaming ? "Streaming" : ""
@@ -346,7 +346,7 @@ extension ServerCodeTranslator {
346346
}
347347

348348
private func makeExtensionServiceProtocol(
349-
for service: CodeGenerationRequest.ServiceDescriptor
349+
for service: ServiceDescriptor
350350
) -> Declaration {
351351
let methods = service.methods.compactMap {
352352
self.makeServiceProtocolExtensionMethod(for: $0, in: service)
@@ -363,8 +363,8 @@ extension ServerCodeTranslator {
363363
}
364364

365365
private func makeServiceProtocolExtensionMethod(
366-
for method: CodeGenerationRequest.ServiceDescriptor.MethodDescriptor,
367-
in service: CodeGenerationRequest.ServiceDescriptor
366+
for method: MethodDescriptor,
367+
in service: ServiceDescriptor
368368
) -> Declaration? {
369369
// The method has the same definition in StreamingServiceProtocol and ServiceProtocol.
370370
if method.isInputStreaming && method.isOutputStreaming {
@@ -385,7 +385,7 @@ extension ServerCodeTranslator {
385385
}
386386

387387
private func makeResponse(
388-
for method: CodeGenerationRequest.ServiceDescriptor.MethodDescriptor
388+
for method: MethodDescriptor
389389
) -> Declaration {
390390
let serverRequest: Expression
391391
if !method.isInputStreaming {
@@ -422,7 +422,7 @@ extension ServerCodeTranslator {
422422
}
423423

424424
private func makeReturnStatement(
425-
for method: CodeGenerationRequest.ServiceDescriptor.MethodDescriptor
425+
for method: MethodDescriptor
426426
) -> Expression {
427427
let returnValue: Expression
428428
// Transforming the unary response into a streaming one.
@@ -447,16 +447,16 @@ extension ServerCodeTranslator {
447447

448448
/// Generates the fully qualified name of a method descriptor.
449449
private func methodDescriptorPath(
450-
for method: CodeGenerationRequest.ServiceDescriptor.MethodDescriptor,
451-
service: CodeGenerationRequest.ServiceDescriptor
450+
for method: MethodDescriptor,
451+
service: ServiceDescriptor
452452
) -> String {
453453
return
454454
"\(service.namespacedGeneratedName).Method.\(method.name.generatedUpperCase).descriptor"
455455
}
456456

457457
/// Generates the fully qualified name of the type alias for a service protocol.
458458
internal func protocolNameTypealias(
459-
service: CodeGenerationRequest.ServiceDescriptor,
459+
service: ServiceDescriptor,
460460
streaming: Bool
461461
) -> String {
462462
if streaming {
@@ -467,7 +467,7 @@ extension ServerCodeTranslator {
467467

468468
/// Generates the name of a service protocol.
469469
internal func protocolName(
470-
service: CodeGenerationRequest.ServiceDescriptor,
470+
service: ServiceDescriptor,
471471
streaming: Bool
472472
) -> String {
473473
if streaming {

0 commit comments

Comments
 (0)