mutating func decodeMessage()

in Reference/google/protobuf/unittest.pb.swift [7835:7955]


  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      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 { try decoder.decodeSingularInt32Field(value: &_storage._optionalInt32) }()
        case 2: try { try decoder.decodeSingularInt64Field(value: &_storage._optionalInt64) }()
        case 3: try { try decoder.decodeSingularUInt32Field(value: &_storage._optionalUint32) }()
        case 4: try { try decoder.decodeSingularUInt64Field(value: &_storage._optionalUint64) }()
        case 5: try { try decoder.decodeSingularSInt32Field(value: &_storage._optionalSint32) }()
        case 6: try { try decoder.decodeSingularSInt64Field(value: &_storage._optionalSint64) }()
        case 7: try { try decoder.decodeSingularFixed32Field(value: &_storage._optionalFixed32) }()
        case 8: try { try decoder.decodeSingularFixed64Field(value: &_storage._optionalFixed64) }()
        case 9: try { try decoder.decodeSingularSFixed32Field(value: &_storage._optionalSfixed32) }()
        case 10: try { try decoder.decodeSingularSFixed64Field(value: &_storage._optionalSfixed64) }()
        case 11: try { try decoder.decodeSingularFloatField(value: &_storage._optionalFloat) }()
        case 12: try { try decoder.decodeSingularDoubleField(value: &_storage._optionalDouble) }()
        case 13: try { try decoder.decodeSingularBoolField(value: &_storage._optionalBool) }()
        case 14: try { try decoder.decodeSingularStringField(value: &_storage._optionalString) }()
        case 15: try { try decoder.decodeSingularBytesField(value: &_storage._optionalBytes) }()
        case 16: try { try decoder.decodeSingularGroupField(value: &_storage._optionalGroup) }()
        case 18: try { try decoder.decodeSingularMessageField(value: &_storage._optionalNestedMessage) }()
        case 19: try { try decoder.decodeSingularMessageField(value: &_storage._optionalForeignMessage) }()
        case 20: try { try decoder.decodeSingularMessageField(value: &_storage._optionalImportMessage) }()
        case 21: try { try decoder.decodeSingularEnumField(value: &_storage._optionalNestedEnum) }()
        case 22: try { try decoder.decodeSingularEnumField(value: &_storage._optionalForeignEnum) }()
        case 23: try { try decoder.decodeSingularEnumField(value: &_storage._optionalImportEnum) }()
        case 24: try { try decoder.decodeSingularStringField(value: &_storage._optionalStringPiece) }()
        case 25: try { try decoder.decodeSingularStringField(value: &_storage._optionalCord) }()
        case 26: try { try decoder.decodeSingularMessageField(value: &_storage._optionalPublicImportMessage) }()
        case 27: try { try decoder.decodeSingularMessageField(value: &_storage._optionalLazyMessage) }()
        case 31: try { try decoder.decodeRepeatedInt32Field(value: &_storage._repeatedInt32) }()
        case 32: try { try decoder.decodeRepeatedInt64Field(value: &_storage._repeatedInt64) }()
        case 33: try { try decoder.decodeRepeatedUInt32Field(value: &_storage._repeatedUint32) }()
        case 34: try { try decoder.decodeRepeatedUInt64Field(value: &_storage._repeatedUint64) }()
        case 35: try { try decoder.decodeRepeatedSInt32Field(value: &_storage._repeatedSint32) }()
        case 36: try { try decoder.decodeRepeatedSInt64Field(value: &_storage._repeatedSint64) }()
        case 37: try { try decoder.decodeRepeatedFixed32Field(value: &_storage._repeatedFixed32) }()
        case 38: try { try decoder.decodeRepeatedFixed64Field(value: &_storage._repeatedFixed64) }()
        case 39: try { try decoder.decodeRepeatedSFixed32Field(value: &_storage._repeatedSfixed32) }()
        case 40: try { try decoder.decodeRepeatedSFixed64Field(value: &_storage._repeatedSfixed64) }()
        case 41: try { try decoder.decodeRepeatedFloatField(value: &_storage._repeatedFloat) }()
        case 42: try { try decoder.decodeRepeatedDoubleField(value: &_storage._repeatedDouble) }()
        case 43: try { try decoder.decodeRepeatedBoolField(value: &_storage._repeatedBool) }()
        case 44: try { try decoder.decodeRepeatedStringField(value: &_storage._repeatedString) }()
        case 45: try { try decoder.decodeRepeatedBytesField(value: &_storage._repeatedBytes) }()
        case 46: try { try decoder.decodeRepeatedGroupField(value: &_storage._repeatedGroup) }()
        case 48: try { try decoder.decodeRepeatedMessageField(value: &_storage._repeatedNestedMessage) }()
        case 49: try { try decoder.decodeRepeatedMessageField(value: &_storage._repeatedForeignMessage) }()
        case 50: try { try decoder.decodeRepeatedMessageField(value: &_storage._repeatedImportMessage) }()
        case 51: try { try decoder.decodeRepeatedEnumField(value: &_storage._repeatedNestedEnum) }()
        case 52: try { try decoder.decodeRepeatedEnumField(value: &_storage._repeatedForeignEnum) }()
        case 53: try { try decoder.decodeRepeatedEnumField(value: &_storage._repeatedImportEnum) }()
        case 54: try { try decoder.decodeRepeatedStringField(value: &_storage._repeatedStringPiece) }()
        case 55: try { try decoder.decodeRepeatedStringField(value: &_storage._repeatedCord) }()
        case 57: try { try decoder.decodeRepeatedMessageField(value: &_storage._repeatedLazyMessage) }()
        case 61: try { try decoder.decodeSingularInt32Field(value: &_storage._defaultInt32) }()
        case 62: try { try decoder.decodeSingularInt64Field(value: &_storage._defaultInt64) }()
        case 63: try { try decoder.decodeSingularUInt32Field(value: &_storage._defaultUint32) }()
        case 64: try { try decoder.decodeSingularUInt64Field(value: &_storage._defaultUint64) }()
        case 65: try { try decoder.decodeSingularSInt32Field(value: &_storage._defaultSint32) }()
        case 66: try { try decoder.decodeSingularSInt64Field(value: &_storage._defaultSint64) }()
        case 67: try { try decoder.decodeSingularFixed32Field(value: &_storage._defaultFixed32) }()
        case 68: try { try decoder.decodeSingularFixed64Field(value: &_storage._defaultFixed64) }()
        case 69: try { try decoder.decodeSingularSFixed32Field(value: &_storage._defaultSfixed32) }()
        case 70: try { try decoder.decodeSingularSFixed64Field(value: &_storage._defaultSfixed64) }()
        case 71: try { try decoder.decodeSingularFloatField(value: &_storage._defaultFloat) }()
        case 72: try { try decoder.decodeSingularDoubleField(value: &_storage._defaultDouble) }()
        case 73: try { try decoder.decodeSingularBoolField(value: &_storage._defaultBool) }()
        case 74: try { try decoder.decodeSingularStringField(value: &_storage._defaultString) }()
        case 75: try { try decoder.decodeSingularBytesField(value: &_storage._defaultBytes) }()
        case 81: try { try decoder.decodeSingularEnumField(value: &_storage._defaultNestedEnum) }()
        case 82: try { try decoder.decodeSingularEnumField(value: &_storage._defaultForeignEnum) }()
        case 83: try { try decoder.decodeSingularEnumField(value: &_storage._defaultImportEnum) }()
        case 84: try { try decoder.decodeSingularStringField(value: &_storage._defaultStringPiece) }()
        case 85: try { try decoder.decodeSingularStringField(value: &_storage._defaultCord) }()
        case 111: try {
          var v: UInt32?
          try decoder.decodeSingularUInt32Field(value: &v)
          if let v = v {
            if _storage._oneofField != nil {try decoder.handleConflictingOneOf()}
            _storage._oneofField = .oneofUint32(v)
          }
        }()
        case 112: try {
          var v: ProtobufUnittest_TestAllTypes.NestedMessage?
          var hadOneofValue = false
          if let current = _storage._oneofField {
            hadOneofValue = true
            if case .oneofNestedMessage(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {
            if hadOneofValue {try decoder.handleConflictingOneOf()}
            _storage._oneofField = .oneofNestedMessage(v)
          }
        }()
        case 113: try {
          var v: String?
          try decoder.decodeSingularStringField(value: &v)
          if let v = v {
            if _storage._oneofField != nil {try decoder.handleConflictingOneOf()}
            _storage._oneofField = .oneofString(v)
          }
        }()
        case 114: try {
          var v: Data?
          try decoder.decodeSingularBytesField(value: &v)
          if let v = v {
            if _storage._oneofField != nil {try decoder.handleConflictingOneOf()}
            _storage._oneofField = .oneofBytes(v)
          }
        }()
        default: break
        }
      }
    }
  }