     }
   }
 }
+
 
 
 /// Main server for generated service

  }

  /// Cancel the call.
  internal func cancel() {
    call.cancel()
  }
}

/// Collect (Client Streaming)
internal final class Echo_EchoCollectCall {
  private var call : Call

  /// Create a call.
  fileprivate init(_ channel: Channel) {
    self.call = channel.makeCall("/echo.Echo/Collect")
  }

  /// Call this to start a call. Nonblocking.
  fileprivate func start(metadata:Metadata, completion:@escaping (CallResult)->())
    throws -> Echo_EchoCollectCall {
      try self.call.start(.clientStreaming, metadata:metadata, completion:completion)
      return self
  }

  /// Call this to send each message in the request stream. Nonblocking.
  internal func send(_ message:Echo_EchoRequest, errorHandler:@escaping (Error)->()) throws {
    let messageData = try message.serializedData()
    try call.sendMessage(data:messageData, errorHandler:errorHandler)
  }

  /// Call this to close the connection and wait for a response. Blocking.
  internal func closeAndReceive() throws -> Echo_EchoResponse {
    var returnError : Echo_EchoClientError?
    var returnResponse : Echo_EchoResponse!
    let sem = DispatchSemaphore(value: 0)

}

/// Get (Unary)
internal protocol Echo_EchoGetCall {
  /// Cancel the call.
  func cancel()
}

/// Get (Unary)
fileprivate final class Echo_EchoGetCallImpl: Echo_EchoGetCall {
  private var call : Call

  /// Create a call.
  init(_ channel: Channel) {
    self.call = channel.makeCall("/echo.Echo/Get")
  }

  /// Run the call. Blocks until the reply is received.
  /// - Throws: `BinaryEncodingError` if encoding fails. `CallError` if fails to call. `Echo_EchoClientError` if receives no response.
  func run(request: Echo_EchoRequest,
                       metadata: Metadata) throws -> Echo_EchoResponse {
    let sem = DispatchSemaphore(value: 0)
    var returnCallResult : CallResult!
