Google_Protobuf_Compiler_CodeGeneratorResponse+Extensions.swift 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Sources/SwiftProtobufPluginLibrary/Google_Protobuf_Compiler_CodeGeneratorResponse+Extensions.swift - CodeGeneratorResponse extensions
  2. //
  3. // Copyright (c) 2014 - 2017 Apple Inc. and the project authors
  4. // Licensed under Apache License v2.0 with Runtime Library Exception
  5. //
  6. // See LICENSE.txt for license information:
  7. // https://github.com/apple/swift-protobuf/blob/main/LICENSE.txt
  8. //
  9. // -----------------------------------------------------------------------------
  10. ///
  11. /// Extensions to `CodeGeneratorResponse` provide some simple helpers.
  12. ///
  13. // -----------------------------------------------------------------------------
  14. extension Google_Protobuf_Compiler_CodeGeneratorResponse {
  15. /// Helper to make a response with an error.
  16. public init(error: String) {
  17. self.init()
  18. self.error = error
  19. }
  20. /// Helper to make a response with a set of files
  21. public init(files: [Google_Protobuf_Compiler_CodeGeneratorResponse.File]) {
  22. self.init(files: files, supportedFeatures: [])
  23. }
  24. /// Helper to make a response with a set of files and supported features.
  25. public init(
  26. files: [Google_Protobuf_Compiler_CodeGeneratorResponse.File],
  27. supportedFeatures: [Google_Protobuf_Compiler_CodeGeneratorResponse.Feature] = []
  28. ) {
  29. self.init()
  30. self.file = files
  31. self.supportedFeatures = supportedFeatures.reduce(0) { $0 | UInt64($1.rawValue) }
  32. }
  33. }
  34. extension Google_Protobuf_Compiler_CodeGeneratorResponse.File {
  35. /// Helper to make a Response.File with specific content.
  36. public init(name: String, content: String) {
  37. self.init()
  38. self.name = name
  39. self.content = content
  40. }
  41. }