mutating func decodeMessage()

in Reference/google/protobuf/unittest_well_known_types.pb.swift [1118:1361]


  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      // The use of inline closures is to circumvent an issue where the compiler
      // allocates stack space for every case branch when no optimizations are
      // enabled. https://github.com/apple/swift-protobuf/issues/1034
      switch fieldNumber {
      case 1: try {
        var v: SwiftProtobuf.Google_Protobuf_Any?
        var hadOneofValue = false
        if let current = self.oneofField {
          hadOneofValue = true
          if case .anyField(let m) = current {v = m}
        }
        try decoder.decodeSingularMessageField(value: &v)
        if let v = v {
          if hadOneofValue {try decoder.handleConflictingOneOf()}
          self.oneofField = .anyField(v)
        }
      }()
      case 2: try {
        var v: SwiftProtobuf.Google_Protobuf_Api?
        var hadOneofValue = false
        if let current = self.oneofField {
          hadOneofValue = true
          if case .apiField(let m) = current {v = m}
        }
        try decoder.decodeSingularMessageField(value: &v)
        if let v = v {
          if hadOneofValue {try decoder.handleConflictingOneOf()}
          self.oneofField = .apiField(v)
        }
      }()
      case 3: try {
        var v: SwiftProtobuf.Google_Protobuf_Duration?
        var hadOneofValue = false
        if let current = self.oneofField {
          hadOneofValue = true
          if case .durationField(let m) = current {v = m}
        }
        try decoder.decodeSingularMessageField(value: &v)
        if let v = v {
          if hadOneofValue {try decoder.handleConflictingOneOf()}
          self.oneofField = .durationField(v)
        }
      }()
      case 4: try {
        var v: SwiftProtobuf.Google_Protobuf_Empty?
        var hadOneofValue = false
        if let current = self.oneofField {
          hadOneofValue = true
          if case .emptyField(let m) = current {v = m}
        }
        try decoder.decodeSingularMessageField(value: &v)
        if let v = v {
          if hadOneofValue {try decoder.handleConflictingOneOf()}
          self.oneofField = .emptyField(v)
        }
      }()
      case 5: try {
        var v: SwiftProtobuf.Google_Protobuf_FieldMask?
        var hadOneofValue = false
        if let current = self.oneofField {
          hadOneofValue = true
          if case .fieldMaskField(let m) = current {v = m}
        }
        try decoder.decodeSingularMessageField(value: &v)
        if let v = v {
          if hadOneofValue {try decoder.handleConflictingOneOf()}
          self.oneofField = .fieldMaskField(v)
        }
      }()
      case 6: try {
        var v: SwiftProtobuf.Google_Protobuf_SourceContext?
        var hadOneofValue = false
        if let current = self.oneofField {
          hadOneofValue = true
          if case .sourceContextField(let m) = current {v = m}
        }
        try decoder.decodeSingularMessageField(value: &v)
        if let v = v {
          if hadOneofValue {try decoder.handleConflictingOneOf()}
          self.oneofField = .sourceContextField(v)
        }
      }()
      case 7: try {
        var v: SwiftProtobuf.Google_Protobuf_Struct?
        var hadOneofValue = false
        if let current = self.oneofField {
          hadOneofValue = true
          if case .structField(let m) = current {v = m}
        }
        try decoder.decodeSingularMessageField(value: &v)
        if let v = v {
          if hadOneofValue {try decoder.handleConflictingOneOf()}
          self.oneofField = .structField(v)
        }
      }()
      case 8: try {
        var v: SwiftProtobuf.Google_Protobuf_Timestamp?
        var hadOneofValue = false
        if let current = self.oneofField {
          hadOneofValue = true
          if case .timestampField(let m) = current {v = m}
        }
        try decoder.decodeSingularMessageField(value: &v)
        if let v = v {
          if hadOneofValue {try decoder.handleConflictingOneOf()}
          self.oneofField = .timestampField(v)
        }
      }()
      case 9: try {
        var v: SwiftProtobuf.Google_Protobuf_Type?
        var hadOneofValue = false
        if let current = self.oneofField {
          hadOneofValue = true
          if case .typeField(let m) = current {v = m}
        }
        try decoder.decodeSingularMessageField(value: &v)
        if let v = v {
          if hadOneofValue {try decoder.handleConflictingOneOf()}
          self.oneofField = .typeField(v)
        }
      }()
      case 10: try {
        var v: SwiftProtobuf.Google_Protobuf_DoubleValue?
        var hadOneofValue = false
        if let current = self.oneofField {
          hadOneofValue = true
          if case .doubleField(let m) = current {v = m}
        }
        try decoder.decodeSingularMessageField(value: &v)
        if let v = v {
          if hadOneofValue {try decoder.handleConflictingOneOf()}
          self.oneofField = .doubleField(v)
        }
      }()
      case 11: try {
        var v: SwiftProtobuf.Google_Protobuf_FloatValue?
        var hadOneofValue = false
        if let current = self.oneofField {
          hadOneofValue = true
          if case .floatField(let m) = current {v = m}
        }
        try decoder.decodeSingularMessageField(value: &v)
        if let v = v {
          if hadOneofValue {try decoder.handleConflictingOneOf()}
          self.oneofField = .floatField(v)
        }
      }()
      case 12: try {
        var v: SwiftProtobuf.Google_Protobuf_Int64Value?
        var hadOneofValue = false
        if let current = self.oneofField {
          hadOneofValue = true
          if case .int64Field(let m) = current {v = m}
        }
        try decoder.decodeSingularMessageField(value: &v)
        if let v = v {
          if hadOneofValue {try decoder.handleConflictingOneOf()}
          self.oneofField = .int64Field(v)
        }
      }()
      case 13: try {
        var v: SwiftProtobuf.Google_Protobuf_UInt64Value?
        var hadOneofValue = false
        if let current = self.oneofField {
          hadOneofValue = true
          if case .uint64Field(let m) = current {v = m}
        }
        try decoder.decodeSingularMessageField(value: &v)
        if let v = v {
          if hadOneofValue {try decoder.handleConflictingOneOf()}
          self.oneofField = .uint64Field(v)
        }
      }()
      case 14: try {
        var v: SwiftProtobuf.Google_Protobuf_Int32Value?
        var hadOneofValue = false
        if let current = self.oneofField {
          hadOneofValue = true
          if case .int32Field(let m) = current {v = m}
        }
        try decoder.decodeSingularMessageField(value: &v)
        if let v = v {
          if hadOneofValue {try decoder.handleConflictingOneOf()}
          self.oneofField = .int32Field(v)
        }
      }()
      case 15: try {
        var v: SwiftProtobuf.Google_Protobuf_UInt32Value?
        var hadOneofValue = false
        if let current = self.oneofField {
          hadOneofValue = true
          if case .uint32Field(let m) = current {v = m}
        }
        try decoder.decodeSingularMessageField(value: &v)
        if let v = v {
          if hadOneofValue {try decoder.handleConflictingOneOf()}
          self.oneofField = .uint32Field(v)
        }
      }()
      case 16: try {
        var v: SwiftProtobuf.Google_Protobuf_BoolValue?
        var hadOneofValue = false
        if let current = self.oneofField {
          hadOneofValue = true
          if case .boolField(let m) = current {v = m}
        }
        try decoder.decodeSingularMessageField(value: &v)
        if let v = v {
          if hadOneofValue {try decoder.handleConflictingOneOf()}
          self.oneofField = .boolField(v)
        }
      }()
      case 17: try {
        var v: SwiftProtobuf.Google_Protobuf_StringValue?
        var hadOneofValue = false
        if let current = self.oneofField {
          hadOneofValue = true
          if case .stringField(let m) = current {v = m}
        }
        try decoder.decodeSingularMessageField(value: &v)
        if let v = v {
          if hadOneofValue {try decoder.handleConflictingOneOf()}
          self.oneofField = .stringField(v)
        }
      }()
      case 18: try {
        var v: SwiftProtobuf.Google_Protobuf_BytesValue?
        var hadOneofValue = false
        if let current = self.oneofField {
          hadOneofValue = true
          if case .bytesField(let m) = current {v = m}
        }
        try decoder.decodeSingularMessageField(value: &v)
        if let v = v {
          if hadOneofValue {try decoder.handleConflictingOneOf()}
          self.oneofField = .bytesField(v)
        }
      }()
      default: break
      }
    }
  }