| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- /*
- * 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 {}
- @available(gRPCSwift 2.0, *)
- func render(_ declaration: Declaration) -> String {
- let renderer = TextBasedRenderer(indentation: 2)
- renderer.renderDeclaration(declaration)
- return renderer.renderedContents()
- }
- @available(gRPCSwift 2.0, *)
- func render(_ expression: Expression) -> String {
- let renderer = TextBasedRenderer(indentation: 2)
- renderer.renderExpression(expression)
- return renderer.renderedContents()
- }
- @available(gRPCSwift 2.0, *)
- func render(_ blocks: [CodeBlock]) -> String {
- let renderer = TextBasedRenderer(indentation: 2)
- renderer.renderCodeBlocks(blocks)
- return renderer.renderedContents()
- }
- @available(gRPCSwift 2.0, *)
- 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
- }
- }
- }
|