ErrorDetails+CustomStringConvertible.swift 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /*
  2. * Copyright 2024, gRPC Authors All rights reserved.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. extension ErrorDetails: CustomStringConvertible {
  17. public var description: String {
  18. switch self.wrapped {
  19. case .errorInfo(let info):
  20. return String(describing: info)
  21. case .retryInfo(let info):
  22. return String(describing: info)
  23. case .debugInfo(let info):
  24. return String(describing: info)
  25. case .quotaFailure(let info):
  26. return String(describing: info)
  27. case .preconditionFailure(let info):
  28. return String(describing: info)
  29. case .badRequest(let info):
  30. return String(describing: info)
  31. case .requestInfo(let info):
  32. return String(describing: info)
  33. case .resourceInfo(let info):
  34. return String(describing: info)
  35. case .help(let info):
  36. return String(describing: info)
  37. case .localizedMessage(let info):
  38. return String(describing: info)
  39. case .any(let any):
  40. return String(describing: any)
  41. }
  42. }
  43. }
  44. // Some errors use protobuf messages as their storage so the default description isn't
  45. // representative
  46. extension ErrorDetails.ErrorInfo: CustomStringConvertible {
  47. public var description: String {
  48. "\(Self.self)(reason: \"\(self.reason)\", domain: \"\(self.domain)\", metadata: \(self.metadata))"
  49. }
  50. }
  51. extension ErrorDetails.DebugInfo: CustomStringConvertible {
  52. public var description: String {
  53. "\(Self.self)(stack: \(self.stack), detail: \"\(self.detail)\")"
  54. }
  55. }
  56. extension ErrorDetails.QuotaFailure.Violation: CustomStringConvertible {
  57. public var description: String {
  58. "\(Self.self)(subject: \"\(self.subject)\", violationDescription: \"\(self.violationDescription)\")"
  59. }
  60. }
  61. extension ErrorDetails.PreconditionFailure.Violation: CustomStringConvertible {
  62. public var description: String {
  63. "\(Self.self)(subject: \"\(self.subject)\", type: \"\(self.type)\", violationDescription: \"\(self.violationDescription)\")"
  64. }
  65. }
  66. extension ErrorDetails.BadRequest.FieldViolation: CustomStringConvertible {
  67. public var description: String {
  68. "\(Self.self)(field: \"\(self.field)\", violationDescription: \"\(self.violationDescription)\")"
  69. }
  70. }
  71. extension ErrorDetails.RequestInfo: CustomStringConvertible {
  72. public var description: String {
  73. "\(Self.self)(requestID: \"\(self.requestID)\", servingData: \"\(self.servingData)\")"
  74. }
  75. }
  76. extension ErrorDetails.ResourceInfo: CustomStringConvertible {
  77. public var description: String {
  78. "\(Self.self)(name: \"\(self.name)\", owner: \"\(self.owner)\", type: \"\(self.type)\", errorDescription: \"\(self.errorDescription)\")"
  79. }
  80. }
  81. extension ErrorDetails.Help.Link: CustomStringConvertible {
  82. public var description: String {
  83. "\(Self.self)(url: \"\(self.url)\", linkDescription: \"\(self.linkDescription)\")"
  84. }
  85. }
  86. extension ErrorDetails.LocalizedMessage: CustomStringConvertible {
  87. public var description: String {
  88. "\(Self.self)(locale: \"\(self.locale)\", message: \"\(self.message)\")"
  89. }
  90. }