| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /*
- * Copyright 2024, gRPC Authors All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- import Testing
- @testable import GRPCCodeGen
- // Used as a namespace for organising other structured swift tests.
- @Suite("Structured Swift")
- struct StructuredSwiftTests {}
- func render(_ declaration: Declaration) -> String {
- let renderer = TextBasedRenderer(indentation: 2)
- renderer.renderDeclaration(declaration)
- return renderer.renderedContents()
- }
- func render(_ expression: Expression) -> String {
- let renderer = TextBasedRenderer(indentation: 2)
- renderer.renderExpression(expression)
- return renderer.renderedContents()
- }
- func render(_ blocks: [CodeBlock]) -> String {
- let renderer = TextBasedRenderer(indentation: 2)
- renderer.renderCodeBlocks(blocks)
- return renderer.renderedContents()
- }
- func render(_ imports: [ImportDescription]) -> String {
- let renderer = TextBasedRenderer(indentation: 2)
- renderer.renderImports(imports)
- return renderer.renderedContents()
- }
- enum RPCKind: Hashable, Sendable, CaseIterable {
- case unary
- case clientStreaming
- case serverStreaming
- case bidirectionalStreaming
- var streamsInput: Bool {
- switch self {
- case .clientStreaming, .bidirectionalStreaming:
- return true
- case .unary, .serverStreaming:
- return false
- }
- }
- var streamsOutput: Bool {
- switch self {
- case .serverStreaming, .bidirectionalStreaming:
- return true
- case .unary, .clientStreaming:
- return false
- }
- }
- }
|