Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 27 additions & 6 deletions Sources/GRPCCodeGen/Internal/Renderer/TextBasedRenderer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -144,9 +144,11 @@ struct TextBasedRenderer: RendererProtocol {
renderImports(imports)
writer.writeLine("")
}
for codeBlock in description.codeBlocks {
for (codeBlock, isLast) in description.codeBlocks.enumeratedWithLastMarker() {
renderCodeBlock(codeBlock)
writer.writeLine("")
if !isLast {
writer.writeLine("")
}
}
}

Expand Down Expand Up @@ -556,8 +558,13 @@ struct TextBasedRenderer: RendererProtocol {
writer.nextLineAppendsToLastLine()
}
writer.writeLine(" {")
for declaration in extensionDescription.declarations {
writer.withNestedLevel { renderDeclaration(declaration) }
for (declaration, isLast) in extensionDescription.declarations.enumeratedWithLastMarker() {
writer.withNestedLevel {
renderDeclaration(declaration)
if !isLast {
writer.writeLine("")
}
}
}
writer.writeLine("}")
}
Expand Down Expand Up @@ -701,7 +708,14 @@ struct TextBasedRenderer: RendererProtocol {
}
writer.writeLine(" {")
if !structDesc.members.isEmpty {
writer.withNestedLevel { for member in structDesc.members { renderDeclaration(member) } }
writer.withNestedLevel {
for (member, isLast) in structDesc.members.enumeratedWithLastMarker() {
renderDeclaration(member)
if !isLast {
writer.writeLine("")
}
}
}
} else {
writer.nextLineAppendsToLastLine()
}
Expand All @@ -723,7 +737,14 @@ struct TextBasedRenderer: RendererProtocol {
}
writer.writeLine(" {")
if !protocolDesc.members.isEmpty {
writer.withNestedLevel { for member in protocolDesc.members { renderDeclaration(member) } }
writer.withNestedLevel {
for (member, isLast) in protocolDesc.members.enumeratedWithLastMarker() {
renderDeclaration(member)
if !isLast {
writer.writeLine("")
}
}
}
} else {
writer.nextLineAppendsToLastLine()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -845,7 +845,6 @@ final class Test_TextBasedRenderer: XCTestCase {
import Foo

struct Bar {}

"""#
)
}
Expand All @@ -871,7 +870,6 @@ final class Test_TextBasedRenderer: XCTestCase {
struct Bar {
struct Baz {}
}

"""#,
indentation: 2
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,11 @@ final class ClientCodeTranslatorSnippetBasedTests: XCTestCase {
/// Documentation for ServiceA
public struct NamespaceA_ServiceAClient: NamespaceA.ServiceA.ClientProtocol {
private let client: GRPCCore.GRPCClient

public init(client: GRPCCore.GRPCClient) {
self.client = client
}

/// Documentation for MethodA
public func methodA<R>(
request: ClientRequest.Single<NamespaceA.ServiceA.Methods.MethodA.Input>,
Expand Down Expand Up @@ -139,9 +141,11 @@ final class ClientCodeTranslatorSnippetBasedTests: XCTestCase {
/// Documentation for ServiceA
public struct NamespaceA_ServiceAClient: NamespaceA.ServiceA.ClientProtocol {
private let client: GRPCCore.GRPCClient

public init(client: GRPCCore.GRPCClient) {
self.client = client
}

/// Documentation for MethodA
public func methodA<R>(
request: ClientRequest.Stream<NamespaceA.ServiceA.Methods.MethodA.Input>,
Expand Down Expand Up @@ -210,9 +214,11 @@ final class ClientCodeTranslatorSnippetBasedTests: XCTestCase {
/// Documentation for ServiceA
public struct NamespaceA_ServiceAClient: NamespaceA.ServiceA.ClientProtocol {
private let client: GRPCCore.GRPCClient

public init(client: GRPCCore.GRPCClient) {
self.client = client
}

/// Documentation for MethodA
public func methodA<R>(
request: ClientRequest.Single<NamespaceA.ServiceA.Methods.MethodA.Input>,
Expand Down Expand Up @@ -281,9 +287,11 @@ final class ClientCodeTranslatorSnippetBasedTests: XCTestCase {
/// Documentation for ServiceA
public struct NamespaceA_ServiceAClient: NamespaceA.ServiceA.ClientProtocol {
private let client: GRPCCore.GRPCClient

public init(client: GRPCCore.GRPCClient) {
self.client = client
}

/// Documentation for MethodA
public func methodA<R>(
request: ClientRequest.Stream<NamespaceA.ServiceA.Methods.MethodA.Input>,
Expand Down Expand Up @@ -343,6 +351,7 @@ final class ClientCodeTranslatorSnippetBasedTests: XCTestCase {
deserializer: some MessageDeserializer<NamespaceA.ServiceA.Methods.MethodA.Output>,
_ body: @Sendable @escaping (ClientResponse.Single<NamespaceA.ServiceA.Methods.MethodA.Output>) async throws -> R
) async throws -> R where R: Sendable

/// Documentation for MethodB
func methodB<R>(
request: ClientRequest.Single<NamespaceA.ServiceA.Methods.MethodB.Input>,
Expand All @@ -363,6 +372,7 @@ final class ClientCodeTranslatorSnippetBasedTests: XCTestCase {
body
)
}

package func methodB<R>(
request: ClientRequest.Single<NamespaceA.ServiceA.Methods.MethodB.Input>,
_ body: @Sendable @escaping (ClientResponse.Stream<NamespaceA.ServiceA.Methods.MethodB.Output>) async throws -> R
Expand All @@ -378,9 +388,11 @@ final class ClientCodeTranslatorSnippetBasedTests: XCTestCase {
/// Documentation for ServiceA
package struct NamespaceA_ServiceAClient: NamespaceA.ServiceA.ClientProtocol {
private let client: GRPCCore.GRPCClient

package init(client: GRPCCore.GRPCClient) {
self.client = client
}

/// Documentation for MethodA
package func methodA<R>(
request: ClientRequest.Stream<NamespaceA.ServiceA.Methods.MethodA.Input>,
Expand All @@ -396,6 +408,7 @@ final class ClientCodeTranslatorSnippetBasedTests: XCTestCase {
handler: body
)
}

/// Documentation for MethodB
package func methodB<R>(
request: ClientRequest.Single<NamespaceA.ServiceA.Methods.MethodB.Input>,
Expand Down Expand Up @@ -464,9 +477,11 @@ final class ClientCodeTranslatorSnippetBasedTests: XCTestCase {
/// Documentation for ServiceA
internal struct ServiceAClient: ServiceA.ClientProtocol {
private let client: GRPCCore.GRPCClient

internal init(client: GRPCCore.GRPCClient) {
self.client = client
}

/// Documentation for MethodA
internal func methodA<R>(
request: ClientRequest.Single<ServiceA.Methods.MethodA.Input>,
Expand Down Expand Up @@ -522,6 +537,7 @@ final class ClientCodeTranslatorSnippetBasedTests: XCTestCase {
/// Documentation for ServiceA
public struct NamespaceA_ServiceAClient: NamespaceA.ServiceA.ClientProtocol {
private let client: GRPCCore.GRPCClient

public init(client: GRPCCore.GRPCClient) {
self.client = client
}
Expand All @@ -537,6 +553,7 @@ final class ClientCodeTranslatorSnippetBasedTests: XCTestCase {
/// Line 2
public struct ServiceBClient: ServiceB.ClientProtocol {
private let client: GRPCCore.GRPCClient

public init(client: GRPCCore.GRPCClient) {
self.client = client
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,6 @@ final class IDLToStructuredSwiftTranslatorSnippetBasedTests: XCTestCase {
/// Partial conformance to `NamespaceA_ServiceAStreamingServiceProtocol`.
extension NamespaceA.ServiceA.ServiceProtocol {
}

"""
try self.assertIDLToStructuredSwiftTranslation(
codeGenerationRequest: makeCodeGenerationRequest(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,7 @@ final class ServerCodeTranslatorSnippetBasedTests: XCTestCase {
internal protocol NamespaceA_ServiceAStreamingServiceProtocol: GRPCCore.RegistrableRPCService {
/// Documentation for inputStreamingMethod
func inputStreaming(request: ServerRequest.Stream<NamespaceA.ServiceA.Methods.InputStreaming.Input>) async throws -> ServerResponse.Stream<NamespaceA.ServiceA.Methods.InputStreaming.Output>

/// Documentation for outputStreamingMethod
func outputStreaming(request: ServerRequest.Stream<NamespaceA.ServiceA.Methods.OutputStreaming.Input>) async throws -> ServerResponse.Stream<NamespaceA.ServiceA.Methods.OutputStreaming.Output>
}
Expand Down Expand Up @@ -358,6 +359,7 @@ final class ServerCodeTranslatorSnippetBasedTests: XCTestCase {
internal protocol NamespaceA_ServiceAServiceProtocol: NamespaceA.ServiceA.StreamingServiceProtocol {
/// Documentation for inputStreamingMethod
func inputStreaming(request: ServerRequest.Stream<NamespaceA.ServiceA.Methods.InputStreaming.Input>) async throws -> ServerResponse.Single<NamespaceA.ServiceA.Methods.InputStreaming.Output>

/// Documentation for outputStreamingMethod
func outputStreaming(request: ServerRequest.Single<NamespaceA.ServiceA.Methods.OutputStreaming.Input>) async throws -> ServerResponse.Stream<NamespaceA.ServiceA.Methods.OutputStreaming.Output>
}
Expand All @@ -367,6 +369,7 @@ final class ServerCodeTranslatorSnippetBasedTests: XCTestCase {
let response = try await self.inputStreaming(request: request)
return ServerResponse.Stream(single: response)
}

internal func outputStreaming(request: ServerRequest.Stream<NamespaceA.ServiceA.Methods.OutputStreaming.Input>) async throws -> ServerResponse.Stream<NamespaceA.ServiceA.Methods.OutputStreaming.Output> {
let response = try await self.outputStreaming(request: ServerRequest.Single(stream: request))
return response
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,9 +104,11 @@ final class ProtobufCodeGeneratorTests: XCTestCase {
/// The greeting service definition.
internal struct Helloworld_GreeterClient: Helloworld.Greeter.ClientProtocol {
private let client: GRPCCore.GRPCClient

internal init(client: GRPCCore.GRPCClient) {
self.client = client
}

/// Sends a greeting.
internal func sayHello<R>(
request: ClientRequest.Single<Helloworld.Greeter.Methods.SayHello.Input>,
Expand All @@ -123,7 +125,6 @@ final class ProtobufCodeGeneratorTests: XCTestCase {
)
}
}

"""
)

Expand Down Expand Up @@ -212,7 +213,6 @@ final class ProtobufCodeGeneratorTests: XCTestCase {
return ServerResponse.Stream(single: response)
}
}

"""
)
try testCodeGeneration(
Expand Down Expand Up @@ -331,9 +331,11 @@ final class ProtobufCodeGeneratorTests: XCTestCase {
/// The greeting service definition.
package struct Helloworld_GreeterClient: Helloworld.Greeter.ClientProtocol {
private let client: GRPCCore.GRPCClient

package init(client: GRPCCore.GRPCClient) {
self.client = client
}

/// Sends a greeting.
package func sayHello<R>(
request: ClientRequest.Single<Helloworld.Greeter.Methods.SayHello.Input>,
Expand All @@ -350,7 +352,6 @@ final class ProtobufCodeGeneratorTests: XCTestCase {
)
}
}

"""
)
}
Expand Down