// DO NOT EDIT.
//
// Generated by the Swift generator plugin for the protocol buffer compiler.
// Source: google/protobuf/unittest_well_known_types.proto
//
// For information on using the generated types, please see the documenation:
//   https://github.com/apple/swift-protobuf/

import Foundation
import SwiftProtobuf

// If the compiler emits an error on this type, it is because this file
// was generated by a version of the `protoc` Swift plug-in that is
// incompatible with the version of SwiftProtobuf to which you are linking.
// Please ensure that your are building against the same version of the API
// that was used to generate this file.
fileprivate struct _GeneratedWithProtocGenSwiftVersion: SwiftProtobuf.ProtobufAPIVersionCheck {
  struct _2: SwiftProtobuf.ProtobufAPIVersion_2 {}
  typealias Version = _2
}

/// Test that we can include all well-known types.
/// Each wrapper type is included separately, as languages
/// map handle different wrappers in different ways.
struct ProtobufUnittest_TestWellKnownTypes: SwiftProtobuf.Message {
  static let protoMessageName: String = _protobuf_package + ".TestWellKnownTypes"

  var anyField: SwiftProtobuf.Google_Protobuf_Any {
    get {return _storage._anyField ?? SwiftProtobuf.Google_Protobuf_Any()}
    set {_uniqueStorage()._anyField = newValue}
  }
  /// Returns true if `anyField` has been explicitly set.
  var hasAnyField: Bool {return _storage._anyField != nil}
  /// Clears the value of `anyField`. Subsequent reads from it will return its default value.
  mutating func clearAnyField() {_storage._anyField = nil}

  var apiField: SwiftProtobuf.Google_Protobuf_Api {
    get {return _storage._apiField ?? SwiftProtobuf.Google_Protobuf_Api()}
    set {_uniqueStorage()._apiField = newValue}
  }
  /// Returns true if `apiField` has been explicitly set.
  var hasApiField: Bool {return _storage._apiField != nil}
  /// Clears the value of `apiField`. Subsequent reads from it will return its default value.
  mutating func clearApiField() {_storage._apiField = nil}

  var durationField: SwiftProtobuf.Google_Protobuf_Duration {
    get {return _storage._durationField ?? SwiftProtobuf.Google_Protobuf_Duration()}
    set {_uniqueStorage()._durationField = newValue}
  }
  /// Returns true if `durationField` has been explicitly set.
  var hasDurationField: Bool {return _storage._durationField != nil}
  /// Clears the value of `durationField`. Subsequent reads from it will return its default value.
  mutating func clearDurationField() {_storage._durationField = nil}

  var emptyField: SwiftProtobuf.Google_Protobuf_Empty {
    get {return _storage._emptyField ?? SwiftProtobuf.Google_Protobuf_Empty()}
    set {_uniqueStorage()._emptyField = newValue}
  }
  /// Returns true if `emptyField` has been explicitly set.
  var hasEmptyField: Bool {return _storage._emptyField != nil}
  /// Clears the value of `emptyField`. Subsequent reads from it will return its default value.
  mutating func clearEmptyField() {_storage._emptyField = nil}

  var fieldMaskField: SwiftProtobuf.Google_Protobuf_FieldMask {
    get {return _storage._fieldMaskField ?? SwiftProtobuf.Google_Protobuf_FieldMask()}
    set {_uniqueStorage()._fieldMaskField = newValue}
  }
  /// Returns true if `fieldMaskField` has been explicitly set.
  var hasFieldMaskField: Bool {return _storage._fieldMaskField != nil}
  /// Clears the value of `fieldMaskField`. Subsequent reads from it will return its default value.
  mutating func clearFieldMaskField() {_storage._fieldMaskField = nil}

  var sourceContextField: SwiftProtobuf.Google_Protobuf_SourceContext {
    get {return _storage._sourceContextField ?? SwiftProtobuf.Google_Protobuf_SourceContext()}
    set {_uniqueStorage()._sourceContextField = newValue}
  }
  /// Returns true if `sourceContextField` has been explicitly set.
  var hasSourceContextField: Bool {return _storage._sourceContextField != nil}
  /// Clears the value of `sourceContextField`. Subsequent reads from it will return its default value.
  mutating func clearSourceContextField() {_storage._sourceContextField = nil}

  var structField: SwiftProtobuf.Google_Protobuf_Struct {
    get {return _storage._structField ?? SwiftProtobuf.Google_Protobuf_Struct()}
    set {_uniqueStorage()._structField = newValue}
  }
  /// Returns true if `structField` has been explicitly set.
  var hasStructField: Bool {return _storage._structField != nil}
  /// Clears the value of `structField`. Subsequent reads from it will return its default value.
  mutating func clearStructField() {_storage._structField = nil}

  var timestampField: SwiftProtobuf.Google_Protobuf_Timestamp {
    get {return _storage._timestampField ?? SwiftProtobuf.Google_Protobuf_Timestamp()}
    set {_uniqueStorage()._timestampField = newValue}
  }
  /// Returns true if `timestampField` has been explicitly set.
  var hasTimestampField: Bool {return _storage._timestampField != nil}
  /// Clears the value of `timestampField`. Subsequent reads from it will return its default value.
  mutating func clearTimestampField() {_storage._timestampField = nil}

  var typeField: SwiftProtobuf.Google_Protobuf_Type {
    get {return _storage._typeField ?? SwiftProtobuf.Google_Protobuf_Type()}
    set {_uniqueStorage()._typeField = newValue}
  }
  /// Returns true if `typeField` has been explicitly set.
  var hasTypeField: Bool {return _storage._typeField != nil}
  /// Clears the value of `typeField`. Subsequent reads from it will return its default value.
  mutating func clearTypeField() {_storage._typeField = nil}

  var doubleField: SwiftProtobuf.Google_Protobuf_DoubleValue {
    get {return _storage._doubleField ?? SwiftProtobuf.Google_Protobuf_DoubleValue()}
    set {_uniqueStorage()._doubleField = newValue}
  }
  /// Returns true if `doubleField` has been explicitly set.
  var hasDoubleField: Bool {return _storage._doubleField != nil}
  /// Clears the value of `doubleField`. Subsequent reads from it will return its default value.
  mutating func clearDoubleField() {_storage._doubleField = nil}

  var floatField: SwiftProtobuf.Google_Protobuf_FloatValue {
    get {return _storage._floatField ?? SwiftProtobuf.Google_Protobuf_FloatValue()}
    set {_uniqueStorage()._floatField = newValue}
  }
  /// Returns true if `floatField` has been explicitly set.
  var hasFloatField: Bool {return _storage._floatField != nil}
  /// Clears the value of `floatField`. Subsequent reads from it will return its default value.
  mutating func clearFloatField() {_storage._floatField = nil}

  var int64Field: SwiftProtobuf.Google_Protobuf_Int64Value {
    get {return _storage._int64Field ?? SwiftProtobuf.Google_Protobuf_Int64Value()}
    set {_uniqueStorage()._int64Field = newValue}
  }
  /// Returns true if `int64Field` has been explicitly set.
  var hasInt64Field: Bool {return _storage._int64Field != nil}
  /// Clears the value of `int64Field`. Subsequent reads from it will return its default value.
  mutating func clearInt64Field() {_storage._int64Field = nil}

  var uint64Field: SwiftProtobuf.Google_Protobuf_UInt64Value {
    get {return _storage._uint64Field ?? SwiftProtobuf.Google_Protobuf_UInt64Value()}
    set {_uniqueStorage()._uint64Field = newValue}
  }
  /// Returns true if `uint64Field` has been explicitly set.
  var hasUint64Field: Bool {return _storage._uint64Field != nil}
  /// Clears the value of `uint64Field`. Subsequent reads from it will return its default value.
  mutating func clearUint64Field() {_storage._uint64Field = nil}

  var int32Field: SwiftProtobuf.Google_Protobuf_Int32Value {
    get {return _storage._int32Field ?? SwiftProtobuf.Google_Protobuf_Int32Value()}
    set {_uniqueStorage()._int32Field = newValue}
  }
  /// Returns true if `int32Field` has been explicitly set.
  var hasInt32Field: Bool {return _storage._int32Field != nil}
  /// Clears the value of `int32Field`. Subsequent reads from it will return its default value.
  mutating func clearInt32Field() {_storage._int32Field = nil}

  var uint32Field: SwiftProtobuf.Google_Protobuf_UInt32Value {
    get {return _storage._uint32Field ?? SwiftProtobuf.Google_Protobuf_UInt32Value()}
    set {_uniqueStorage()._uint32Field = newValue}
  }
  /// Returns true if `uint32Field` has been explicitly set.
  var hasUint32Field: Bool {return _storage._uint32Field != nil}
  /// Clears the value of `uint32Field`. Subsequent reads from it will return its default value.
  mutating func clearUint32Field() {_storage._uint32Field = nil}

  var boolField: SwiftProtobuf.Google_Protobuf_BoolValue {
    get {return _storage._boolField ?? SwiftProtobuf.Google_Protobuf_BoolValue()}
    set {_uniqueStorage()._boolField = newValue}
  }
  /// Returns true if `boolField` has been explicitly set.
  var hasBoolField: Bool {return _storage._boolField != nil}
  /// Clears the value of `boolField`. Subsequent reads from it will return its default value.
  mutating func clearBoolField() {_storage._boolField = nil}

  var stringField: SwiftProtobuf.Google_Protobuf_StringValue {
    get {return _storage._stringField ?? SwiftProtobuf.Google_Protobuf_StringValue()}
    set {_uniqueStorage()._stringField = newValue}
  }
  /// Returns true if `stringField` has been explicitly set.
  var hasStringField: Bool {return _storage._stringField != nil}
  /// Clears the value of `stringField`. Subsequent reads from it will return its default value.
  mutating func clearStringField() {_storage._stringField = nil}

  var bytesField: SwiftProtobuf.Google_Protobuf_BytesValue {
    get {return _storage._bytesField ?? SwiftProtobuf.Google_Protobuf_BytesValue()}
    set {_uniqueStorage()._bytesField = newValue}
  }
  /// Returns true if `bytesField` has been explicitly set.
  var hasBytesField: Bool {return _storage._bytesField != nil}
  /// Clears the value of `bytesField`. Subsequent reads from it will return its default value.
  mutating func clearBytesField() {_storage._bytesField = nil}

  /// Part of struct, but useful to be able to test separately
  var valueField: SwiftProtobuf.Google_Protobuf_Value {
    get {return _storage._valueField ?? SwiftProtobuf.Google_Protobuf_Value()}
    set {_uniqueStorage()._valueField = newValue}
  }
  /// Returns true if `valueField` has been explicitly set.
  var hasValueField: Bool {return _storage._valueField != nil}
  /// Clears the value of `valueField`. Subsequent reads from it will return its default value.
  mutating func clearValueField() {_storage._valueField = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1: try decoder.decodeSingularMessageField(value: &_storage._anyField)
        case 2: try decoder.decodeSingularMessageField(value: &_storage._apiField)
        case 3: try decoder.decodeSingularMessageField(value: &_storage._durationField)
        case 4: try decoder.decodeSingularMessageField(value: &_storage._emptyField)
        case 5: try decoder.decodeSingularMessageField(value: &_storage._fieldMaskField)
        case 6: try decoder.decodeSingularMessageField(value: &_storage._sourceContextField)
        case 7: try decoder.decodeSingularMessageField(value: &_storage._structField)
        case 8: try decoder.decodeSingularMessageField(value: &_storage._timestampField)
        case 9: try decoder.decodeSingularMessageField(value: &_storage._typeField)
        case 10: try decoder.decodeSingularMessageField(value: &_storage._doubleField)
        case 11: try decoder.decodeSingularMessageField(value: &_storage._floatField)
        case 12: try decoder.decodeSingularMessageField(value: &_storage._int64Field)
        case 13: try decoder.decodeSingularMessageField(value: &_storage._uint64Field)
        case 14: try decoder.decodeSingularMessageField(value: &_storage._int32Field)
        case 15: try decoder.decodeSingularMessageField(value: &_storage._uint32Field)
        case 16: try decoder.decodeSingularMessageField(value: &_storage._boolField)
        case 17: try decoder.decodeSingularMessageField(value: &_storage._stringField)
        case 18: try decoder.decodeSingularMessageField(value: &_storage._bytesField)
        case 19: try decoder.decodeSingularMessageField(value: &_storage._valueField)
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if let v = _storage._anyField {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 1)
      }
      if let v = _storage._apiField {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 2)
      }
      if let v = _storage._durationField {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 3)
      }
      if let v = _storage._emptyField {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 4)
      }
      if let v = _storage._fieldMaskField {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 5)
      }
      if let v = _storage._sourceContextField {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 6)
      }
      if let v = _storage._structField {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 7)
      }
      if let v = _storage._timestampField {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 8)
      }
      if let v = _storage._typeField {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 9)
      }
      if let v = _storage._doubleField {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 10)
      }
      if let v = _storage._floatField {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 11)
      }
      if let v = _storage._int64Field {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 12)
      }
      if let v = _storage._uint64Field {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 13)
      }
      if let v = _storage._int32Field {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 14)
      }
      if let v = _storage._uint32Field {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 15)
      }
      if let v = _storage._boolField {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 16)
      }
      if let v = _storage._stringField {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 17)
      }
      if let v = _storage._bytesField {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 18)
      }
      if let v = _storage._valueField {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 19)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass()
}

/// A repeated field for each well-known type.
struct ProtobufUnittest_RepeatedWellKnownTypes: SwiftProtobuf.Message {
  static let protoMessageName: String = _protobuf_package + ".RepeatedWellKnownTypes"

  var anyField: [SwiftProtobuf.Google_Protobuf_Any] {
    get {return _storage._anyField}
    set {_uniqueStorage()._anyField = newValue}
  }

  var apiField: [SwiftProtobuf.Google_Protobuf_Api] {
    get {return _storage._apiField}
    set {_uniqueStorage()._apiField = newValue}
  }

  var durationField: [SwiftProtobuf.Google_Protobuf_Duration] {
    get {return _storage._durationField}
    set {_uniqueStorage()._durationField = newValue}
  }

  var emptyField: [SwiftProtobuf.Google_Protobuf_Empty] {
    get {return _storage._emptyField}
    set {_uniqueStorage()._emptyField = newValue}
  }

  var fieldMaskField: [SwiftProtobuf.Google_Protobuf_FieldMask] {
    get {return _storage._fieldMaskField}
    set {_uniqueStorage()._fieldMaskField = newValue}
  }

  var sourceContextField: [SwiftProtobuf.Google_Protobuf_SourceContext] {
    get {return _storage._sourceContextField}
    set {_uniqueStorage()._sourceContextField = newValue}
  }

  var structField: [SwiftProtobuf.Google_Protobuf_Struct] {
    get {return _storage._structField}
    set {_uniqueStorage()._structField = newValue}
  }

  var timestampField: [SwiftProtobuf.Google_Protobuf_Timestamp] {
    get {return _storage._timestampField}
    set {_uniqueStorage()._timestampField = newValue}
  }

  var typeField: [SwiftProtobuf.Google_Protobuf_Type] {
    get {return _storage._typeField}
    set {_uniqueStorage()._typeField = newValue}
  }

  /// These don't actually make a lot of sense, but they're not prohibited...
  var doubleField: [SwiftProtobuf.Google_Protobuf_DoubleValue] {
    get {return _storage._doubleField}
    set {_uniqueStorage()._doubleField = newValue}
  }

  var floatField: [SwiftProtobuf.Google_Protobuf_FloatValue] {
    get {return _storage._floatField}
    set {_uniqueStorage()._floatField = newValue}
  }

  var int64Field: [SwiftProtobuf.Google_Protobuf_Int64Value] {
    get {return _storage._int64Field}
    set {_uniqueStorage()._int64Field = newValue}
  }

  var uint64Field: [SwiftProtobuf.Google_Protobuf_UInt64Value] {
    get {return _storage._uint64Field}
    set {_uniqueStorage()._uint64Field = newValue}
  }

  var int32Field: [SwiftProtobuf.Google_Protobuf_Int32Value] {
    get {return _storage._int32Field}
    set {_uniqueStorage()._int32Field = newValue}
  }

  var uint32Field: [SwiftProtobuf.Google_Protobuf_UInt32Value] {
    get {return _storage._uint32Field}
    set {_uniqueStorage()._uint32Field = newValue}
  }

  var boolField: [SwiftProtobuf.Google_Protobuf_BoolValue] {
    get {return _storage._boolField}
    set {_uniqueStorage()._boolField = newValue}
  }

  var stringField: [SwiftProtobuf.Google_Protobuf_StringValue] {
    get {return _storage._stringField}
    set {_uniqueStorage()._stringField = newValue}
  }

  var bytesField: [SwiftProtobuf.Google_Protobuf_BytesValue] {
    get {return _storage._bytesField}
    set {_uniqueStorage()._bytesField = newValue}
  }

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1: try decoder.decodeRepeatedMessageField(value: &_storage._anyField)
        case 2: try decoder.decodeRepeatedMessageField(value: &_storage._apiField)
        case 3: try decoder.decodeRepeatedMessageField(value: &_storage._durationField)
        case 4: try decoder.decodeRepeatedMessageField(value: &_storage._emptyField)
        case 5: try decoder.decodeRepeatedMessageField(value: &_storage._fieldMaskField)
        case 6: try decoder.decodeRepeatedMessageField(value: &_storage._sourceContextField)
        case 7: try decoder.decodeRepeatedMessageField(value: &_storage._structField)
        case 8: try decoder.decodeRepeatedMessageField(value: &_storage._timestampField)
        case 9: try decoder.decodeRepeatedMessageField(value: &_storage._typeField)
        case 10: try decoder.decodeRepeatedMessageField(value: &_storage._doubleField)
        case 11: try decoder.decodeRepeatedMessageField(value: &_storage._floatField)
        case 12: try decoder.decodeRepeatedMessageField(value: &_storage._int64Field)
        case 13: try decoder.decodeRepeatedMessageField(value: &_storage._uint64Field)
        case 14: try decoder.decodeRepeatedMessageField(value: &_storage._int32Field)
        case 15: try decoder.decodeRepeatedMessageField(value: &_storage._uint32Field)
        case 16: try decoder.decodeRepeatedMessageField(value: &_storage._boolField)
        case 17: try decoder.decodeRepeatedMessageField(value: &_storage._stringField)
        case 18: try decoder.decodeRepeatedMessageField(value: &_storage._bytesField)
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if !_storage._anyField.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._anyField, fieldNumber: 1)
      }
      if !_storage._apiField.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._apiField, fieldNumber: 2)
      }
      if !_storage._durationField.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._durationField, fieldNumber: 3)
      }
      if !_storage._emptyField.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._emptyField, fieldNumber: 4)
      }
      if !_storage._fieldMaskField.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._fieldMaskField, fieldNumber: 5)
      }
      if !_storage._sourceContextField.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._sourceContextField, fieldNumber: 6)
      }
      if !_storage._structField.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._structField, fieldNumber: 7)
      }
      if !_storage._timestampField.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._timestampField, fieldNumber: 8)
      }
      if !_storage._typeField.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._typeField, fieldNumber: 9)
      }
      if !_storage._doubleField.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._doubleField, fieldNumber: 10)
      }
      if !_storage._floatField.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._floatField, fieldNumber: 11)
      }
      if !_storage._int64Field.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._int64Field, fieldNumber: 12)
      }
      if !_storage._uint64Field.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._uint64Field, fieldNumber: 13)
      }
      if !_storage._int32Field.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._int32Field, fieldNumber: 14)
      }
      if !_storage._uint32Field.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._uint32Field, fieldNumber: 15)
      }
      if !_storage._boolField.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._boolField, fieldNumber: 16)
      }
      if !_storage._stringField.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._stringField, fieldNumber: 17)
      }
      if !_storage._bytesField.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._bytesField, fieldNumber: 18)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass()
}

struct ProtobufUnittest_OneofWellKnownTypes: SwiftProtobuf.Message {
  static let protoMessageName: String = _protobuf_package + ".OneofWellKnownTypes"

  var oneofField: OneOf_OneofField? {
    get {return _storage._oneofField}
    set {_uniqueStorage()._oneofField = newValue}
  }

  var anyField: SwiftProtobuf.Google_Protobuf_Any {
    get {
      if case .anyField(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Google_Protobuf_Any()
    }
    set {_uniqueStorage()._oneofField = .anyField(newValue)}
  }

  var apiField: SwiftProtobuf.Google_Protobuf_Api {
    get {
      if case .apiField(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Google_Protobuf_Api()
    }
    set {_uniqueStorage()._oneofField = .apiField(newValue)}
  }

  var durationField: SwiftProtobuf.Google_Protobuf_Duration {
    get {
      if case .durationField(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Google_Protobuf_Duration()
    }
    set {_uniqueStorage()._oneofField = .durationField(newValue)}
  }

  var emptyField: SwiftProtobuf.Google_Protobuf_Empty {
    get {
      if case .emptyField(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Google_Protobuf_Empty()
    }
    set {_uniqueStorage()._oneofField = .emptyField(newValue)}
  }

  var fieldMaskField: SwiftProtobuf.Google_Protobuf_FieldMask {
    get {
      if case .fieldMaskField(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Google_Protobuf_FieldMask()
    }
    set {_uniqueStorage()._oneofField = .fieldMaskField(newValue)}
  }

  var sourceContextField: SwiftProtobuf.Google_Protobuf_SourceContext {
    get {
      if case .sourceContextField(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Google_Protobuf_SourceContext()
    }
    set {_uniqueStorage()._oneofField = .sourceContextField(newValue)}
  }

  var structField: SwiftProtobuf.Google_Protobuf_Struct {
    get {
      if case .structField(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Google_Protobuf_Struct()
    }
    set {_uniqueStorage()._oneofField = .structField(newValue)}
  }

  var timestampField: SwiftProtobuf.Google_Protobuf_Timestamp {
    get {
      if case .timestampField(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Google_Protobuf_Timestamp()
    }
    set {_uniqueStorage()._oneofField = .timestampField(newValue)}
  }

  var typeField: SwiftProtobuf.Google_Protobuf_Type {
    get {
      if case .typeField(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Google_Protobuf_Type()
    }
    set {_uniqueStorage()._oneofField = .typeField(newValue)}
  }

  var doubleField: SwiftProtobuf.Google_Protobuf_DoubleValue {
    get {
      if case .doubleField(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Google_Protobuf_DoubleValue()
    }
    set {_uniqueStorage()._oneofField = .doubleField(newValue)}
  }

  var floatField: SwiftProtobuf.Google_Protobuf_FloatValue {
    get {
      if case .floatField(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Google_Protobuf_FloatValue()
    }
    set {_uniqueStorage()._oneofField = .floatField(newValue)}
  }

  var int64Field: SwiftProtobuf.Google_Protobuf_Int64Value {
    get {
      if case .int64Field(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Google_Protobuf_Int64Value()
    }
    set {_uniqueStorage()._oneofField = .int64Field(newValue)}
  }

  var uint64Field: SwiftProtobuf.Google_Protobuf_UInt64Value {
    get {
      if case .uint64Field(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Google_Protobuf_UInt64Value()
    }
    set {_uniqueStorage()._oneofField = .uint64Field(newValue)}
  }

  var int32Field: SwiftProtobuf.Google_Protobuf_Int32Value {
    get {
      if case .int32Field(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Google_Protobuf_Int32Value()
    }
    set {_uniqueStorage()._oneofField = .int32Field(newValue)}
  }

  var uint32Field: SwiftProtobuf.Google_Protobuf_UInt32Value {
    get {
      if case .uint32Field(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Google_Protobuf_UInt32Value()
    }
    set {_uniqueStorage()._oneofField = .uint32Field(newValue)}
  }

  var boolField: SwiftProtobuf.Google_Protobuf_BoolValue {
    get {
      if case .boolField(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Google_Protobuf_BoolValue()
    }
    set {_uniqueStorage()._oneofField = .boolField(newValue)}
  }

  var stringField: SwiftProtobuf.Google_Protobuf_StringValue {
    get {
      if case .stringField(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Google_Protobuf_StringValue()
    }
    set {_uniqueStorage()._oneofField = .stringField(newValue)}
  }

  var bytesField: SwiftProtobuf.Google_Protobuf_BytesValue {
    get {
      if case .bytesField(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Google_Protobuf_BytesValue()
    }
    set {_uniqueStorage()._oneofField = .bytesField(newValue)}
  }

  var unknownFields = SwiftProtobuf.UnknownStorage()

  enum OneOf_OneofField: Equatable {
    case anyField(SwiftProtobuf.Google_Protobuf_Any)
    case apiField(SwiftProtobuf.Google_Protobuf_Api)
    case durationField(SwiftProtobuf.Google_Protobuf_Duration)
    case emptyField(SwiftProtobuf.Google_Protobuf_Empty)
    case fieldMaskField(SwiftProtobuf.Google_Protobuf_FieldMask)
    case sourceContextField(SwiftProtobuf.Google_Protobuf_SourceContext)
    case structField(SwiftProtobuf.Google_Protobuf_Struct)
    case timestampField(SwiftProtobuf.Google_Protobuf_Timestamp)
    case typeField(SwiftProtobuf.Google_Protobuf_Type)
    case doubleField(SwiftProtobuf.Google_Protobuf_DoubleValue)
    case floatField(SwiftProtobuf.Google_Protobuf_FloatValue)
    case int64Field(SwiftProtobuf.Google_Protobuf_Int64Value)
    case uint64Field(SwiftProtobuf.Google_Protobuf_UInt64Value)
    case int32Field(SwiftProtobuf.Google_Protobuf_Int32Value)
    case uint32Field(SwiftProtobuf.Google_Protobuf_UInt32Value)
    case boolField(SwiftProtobuf.Google_Protobuf_BoolValue)
    case stringField(SwiftProtobuf.Google_Protobuf_StringValue)
    case bytesField(SwiftProtobuf.Google_Protobuf_BytesValue)

    static func ==(lhs: ProtobufUnittest_OneofWellKnownTypes.OneOf_OneofField, rhs: ProtobufUnittest_OneofWellKnownTypes.OneOf_OneofField) -> Bool {
      switch (lhs, rhs) {
      case (.anyField(let l), .anyField(let r)): return l == r
      case (.apiField(let l), .apiField(let r)): return l == r
      case (.durationField(let l), .durationField(let r)): return l == r
      case (.emptyField(let l), .emptyField(let r)): return l == r
      case (.fieldMaskField(let l), .fieldMaskField(let r)): return l == r
      case (.sourceContextField(let l), .sourceContextField(let r)): return l == r
      case (.structField(let l), .structField(let r)): return l == r
      case (.timestampField(let l), .timestampField(let r)): return l == r
      case (.typeField(let l), .typeField(let r)): return l == r
      case (.doubleField(let l), .doubleField(let r)): return l == r
      case (.floatField(let l), .floatField(let r)): return l == r
      case (.int64Field(let l), .int64Field(let r)): return l == r
      case (.uint64Field(let l), .uint64Field(let r)): return l == r
      case (.int32Field(let l), .int32Field(let r)): return l == r
      case (.uint32Field(let l), .uint32Field(let r)): return l == r
      case (.boolField(let l), .boolField(let r)): return l == r
      case (.stringField(let l), .stringField(let r)): return l == r
      case (.bytesField(let l), .bytesField(let r)): return l == r
      default: return false
      }
    }
  }

  init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1:
          var v: SwiftProtobuf.Google_Protobuf_Any?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .anyField(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .anyField(v)}
        case 2:
          var v: SwiftProtobuf.Google_Protobuf_Api?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .apiField(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .apiField(v)}
        case 3:
          var v: SwiftProtobuf.Google_Protobuf_Duration?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .durationField(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .durationField(v)}
        case 4:
          var v: SwiftProtobuf.Google_Protobuf_Empty?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .emptyField(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .emptyField(v)}
        case 5:
          var v: SwiftProtobuf.Google_Protobuf_FieldMask?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .fieldMaskField(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .fieldMaskField(v)}
        case 6:
          var v: SwiftProtobuf.Google_Protobuf_SourceContext?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .sourceContextField(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .sourceContextField(v)}
        case 7:
          var v: SwiftProtobuf.Google_Protobuf_Struct?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .structField(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .structField(v)}
        case 8:
          var v: SwiftProtobuf.Google_Protobuf_Timestamp?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .timestampField(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .timestampField(v)}
        case 9:
          var v: SwiftProtobuf.Google_Protobuf_Type?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .typeField(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .typeField(v)}
        case 10:
          var v: SwiftProtobuf.Google_Protobuf_DoubleValue?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .doubleField(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .doubleField(v)}
        case 11:
          var v: SwiftProtobuf.Google_Protobuf_FloatValue?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .floatField(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .floatField(v)}
        case 12:
          var v: SwiftProtobuf.Google_Protobuf_Int64Value?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .int64Field(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .int64Field(v)}
        case 13:
          var v: SwiftProtobuf.Google_Protobuf_UInt64Value?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .uint64Field(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .uint64Field(v)}
        case 14:
          var v: SwiftProtobuf.Google_Protobuf_Int32Value?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .int32Field(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .int32Field(v)}
        case 15:
          var v: SwiftProtobuf.Google_Protobuf_UInt32Value?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .uint32Field(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .uint32Field(v)}
        case 16:
          var v: SwiftProtobuf.Google_Protobuf_BoolValue?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .boolField(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .boolField(v)}
        case 17:
          var v: SwiftProtobuf.Google_Protobuf_StringValue?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .stringField(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .stringField(v)}
        case 18:
          var v: SwiftProtobuf.Google_Protobuf_BytesValue?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .bytesField(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .bytesField(v)}
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      switch _storage._oneofField {
      case .anyField(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 1)
      case .apiField(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 2)
      case .durationField(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 3)
      case .emptyField(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 4)
      case .fieldMaskField(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 5)
      case .sourceContextField(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 6)
      case .structField(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 7)
      case .timestampField(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 8)
      case .typeField(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 9)
      case .doubleField(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 10)
      case .floatField(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 11)
      case .int64Field(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 12)
      case .uint64Field(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 13)
      case .int32Field(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 14)
      case .uint32Field(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 15)
      case .boolField(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 16)
      case .stringField(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 17)
      case .bytesField(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 18)
      case nil: break
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass()
}

/// A map field for each well-known type. We only
/// need to worry about the value part of the map being the
/// well-known types, as messages can't be map keys.
struct ProtobufUnittest_MapWellKnownTypes: SwiftProtobuf.Message {
  static let protoMessageName: String = _protobuf_package + ".MapWellKnownTypes"

  var anyField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_Any> {
    get {return _storage._anyField}
    set {_uniqueStorage()._anyField = newValue}
  }

  var apiField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_Api> {
    get {return _storage._apiField}
    set {_uniqueStorage()._apiField = newValue}
  }

  var durationField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_Duration> {
    get {return _storage._durationField}
    set {_uniqueStorage()._durationField = newValue}
  }

  var emptyField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_Empty> {
    get {return _storage._emptyField}
    set {_uniqueStorage()._emptyField = newValue}
  }

  var fieldMaskField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_FieldMask> {
    get {return _storage._fieldMaskField}
    set {_uniqueStorage()._fieldMaskField = newValue}
  }

  var sourceContextField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_SourceContext> {
    get {return _storage._sourceContextField}
    set {_uniqueStorage()._sourceContextField = newValue}
  }

  var structField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_Struct> {
    get {return _storage._structField}
    set {_uniqueStorage()._structField = newValue}
  }

  var timestampField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_Timestamp> {
    get {return _storage._timestampField}
    set {_uniqueStorage()._timestampField = newValue}
  }

  var typeField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_Type> {
    get {return _storage._typeField}
    set {_uniqueStorage()._typeField = newValue}
  }

  var doubleField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_DoubleValue> {
    get {return _storage._doubleField}
    set {_uniqueStorage()._doubleField = newValue}
  }

  var floatField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_FloatValue> {
    get {return _storage._floatField}
    set {_uniqueStorage()._floatField = newValue}
  }

  var int64Field: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_Int64Value> {
    get {return _storage._int64Field}
    set {_uniqueStorage()._int64Field = newValue}
  }

  var uint64Field: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_UInt64Value> {
    get {return _storage._uint64Field}
    set {_uniqueStorage()._uint64Field = newValue}
  }

  var int32Field: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_Int32Value> {
    get {return _storage._int32Field}
    set {_uniqueStorage()._int32Field = newValue}
  }

  var uint32Field: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_UInt32Value> {
    get {return _storage._uint32Field}
    set {_uniqueStorage()._uint32Field = newValue}
  }

  var boolField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_BoolValue> {
    get {return _storage._boolField}
    set {_uniqueStorage()._boolField = newValue}
  }

  var stringField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_StringValue> {
    get {return _storage._stringField}
    set {_uniqueStorage()._stringField = newValue}
  }

  var bytesField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_BytesValue> {
    get {return _storage._bytesField}
    set {_uniqueStorage()._bytesField = newValue}
  }

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_Any>.self, value: &_storage._anyField)
        case 2: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_Api>.self, value: &_storage._apiField)
        case 3: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_Duration>.self, value: &_storage._durationField)
        case 4: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_Empty>.self, value: &_storage._emptyField)
        case 5: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_FieldMask>.self, value: &_storage._fieldMaskField)
        case 6: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_SourceContext>.self, value: &_storage._sourceContextField)
        case 7: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_Struct>.self, value: &_storage._structField)
        case 8: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_Timestamp>.self, value: &_storage._timestampField)
        case 9: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_Type>.self, value: &_storage._typeField)
        case 10: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_DoubleValue>.self, value: &_storage._doubleField)
        case 11: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_FloatValue>.self, value: &_storage._floatField)
        case 12: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_Int64Value>.self, value: &_storage._int64Field)
        case 13: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_UInt64Value>.self, value: &_storage._uint64Field)
        case 14: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_Int32Value>.self, value: &_storage._int32Field)
        case 15: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_UInt32Value>.self, value: &_storage._uint32Field)
        case 16: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_BoolValue>.self, value: &_storage._boolField)
        case 17: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_StringValue>.self, value: &_storage._stringField)
        case 18: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_BytesValue>.self, value: &_storage._bytesField)
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if !_storage._anyField.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_Any>.self, value: _storage._anyField, fieldNumber: 1)
      }
      if !_storage._apiField.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_Api>.self, value: _storage._apiField, fieldNumber: 2)
      }
      if !_storage._durationField.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_Duration>.self, value: _storage._durationField, fieldNumber: 3)
      }
      if !_storage._emptyField.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_Empty>.self, value: _storage._emptyField, fieldNumber: 4)
      }
      if !_storage._fieldMaskField.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_FieldMask>.self, value: _storage._fieldMaskField, fieldNumber: 5)
      }
      if !_storage._sourceContextField.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_SourceContext>.self, value: _storage._sourceContextField, fieldNumber: 6)
      }
      if !_storage._structField.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_Struct>.self, value: _storage._structField, fieldNumber: 7)
      }
      if !_storage._timestampField.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_Timestamp>.self, value: _storage._timestampField, fieldNumber: 8)
      }
      if !_storage._typeField.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_Type>.self, value: _storage._typeField, fieldNumber: 9)
      }
      if !_storage._doubleField.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_DoubleValue>.self, value: _storage._doubleField, fieldNumber: 10)
      }
      if !_storage._floatField.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_FloatValue>.self, value: _storage._floatField, fieldNumber: 11)
      }
      if !_storage._int64Field.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_Int64Value>.self, value: _storage._int64Field, fieldNumber: 12)
      }
      if !_storage._uint64Field.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_UInt64Value>.self, value: _storage._uint64Field, fieldNumber: 13)
      }
      if !_storage._int32Field.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_Int32Value>.self, value: _storage._int32Field, fieldNumber: 14)
      }
      if !_storage._uint32Field.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_UInt32Value>.self, value: _storage._uint32Field, fieldNumber: 15)
      }
      if !_storage._boolField.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_BoolValue>.self, value: _storage._boolField, fieldNumber: 16)
      }
      if !_storage._stringField.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_StringValue>.self, value: _storage._stringField, fieldNumber: 17)
      }
      if !_storage._bytesField.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.Google_Protobuf_BytesValue>.self, value: _storage._bytesField, fieldNumber: 18)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass()
}

// MARK: - Code below here is support for the SwiftProtobuf runtime.

fileprivate let _protobuf_package = "protobuf_unittest"

extension ProtobufUnittest_TestWellKnownTypes: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "any_field"),
    2: .standard(proto: "api_field"),
    3: .standard(proto: "duration_field"),
    4: .standard(proto: "empty_field"),
    5: .standard(proto: "field_mask_field"),
    6: .standard(proto: "source_context_field"),
    7: .standard(proto: "struct_field"),
    8: .standard(proto: "timestamp_field"),
    9: .standard(proto: "type_field"),
    10: .standard(proto: "double_field"),
    11: .standard(proto: "float_field"),
    12: .standard(proto: "int64_field"),
    13: .standard(proto: "uint64_field"),
    14: .standard(proto: "int32_field"),
    15: .standard(proto: "uint32_field"),
    16: .standard(proto: "bool_field"),
    17: .standard(proto: "string_field"),
    18: .standard(proto: "bytes_field"),
    19: .standard(proto: "value_field"),
  ]

  fileprivate class _StorageClass {
    var _anyField: SwiftProtobuf.Google_Protobuf_Any? = nil
    var _apiField: SwiftProtobuf.Google_Protobuf_Api? = nil
    var _durationField: SwiftProtobuf.Google_Protobuf_Duration? = nil
    var _emptyField: SwiftProtobuf.Google_Protobuf_Empty? = nil
    var _fieldMaskField: SwiftProtobuf.Google_Protobuf_FieldMask? = nil
    var _sourceContextField: SwiftProtobuf.Google_Protobuf_SourceContext? = nil
    var _structField: SwiftProtobuf.Google_Protobuf_Struct? = nil
    var _timestampField: SwiftProtobuf.Google_Protobuf_Timestamp? = nil
    var _typeField: SwiftProtobuf.Google_Protobuf_Type? = nil
    var _doubleField: SwiftProtobuf.Google_Protobuf_DoubleValue? = nil
    var _floatField: SwiftProtobuf.Google_Protobuf_FloatValue? = nil
    var _int64Field: SwiftProtobuf.Google_Protobuf_Int64Value? = nil
    var _uint64Field: SwiftProtobuf.Google_Protobuf_UInt64Value? = nil
    var _int32Field: SwiftProtobuf.Google_Protobuf_Int32Value? = nil
    var _uint32Field: SwiftProtobuf.Google_Protobuf_UInt32Value? = nil
    var _boolField: SwiftProtobuf.Google_Protobuf_BoolValue? = nil
    var _stringField: SwiftProtobuf.Google_Protobuf_StringValue? = nil
    var _bytesField: SwiftProtobuf.Google_Protobuf_BytesValue? = nil
    var _valueField: SwiftProtobuf.Google_Protobuf_Value? = nil

    init() {}

    init(copying source: _StorageClass) {
      _anyField = source._anyField
      _apiField = source._apiField
      _durationField = source._durationField
      _emptyField = source._emptyField
      _fieldMaskField = source._fieldMaskField
      _sourceContextField = source._sourceContextField
      _structField = source._structField
      _timestampField = source._timestampField
      _typeField = source._typeField
      _doubleField = source._doubleField
      _floatField = source._floatField
      _int64Field = source._int64Field
      _uint64Field = source._uint64Field
      _int32Field = source._int32Field
      _uint32Field = source._uint32Field
      _boolField = source._boolField
      _stringField = source._stringField
      _bytesField = source._bytesField
      _valueField = source._valueField
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  func _protobuf_generated_isEqualTo(other: ProtobufUnittest_TestWellKnownTypes) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._anyField != other_storage._anyField {return false}
        if _storage._apiField != other_storage._apiField {return false}
        if _storage._durationField != other_storage._durationField {return false}
        if _storage._emptyField != other_storage._emptyField {return false}
        if _storage._fieldMaskField != other_storage._fieldMaskField {return false}
        if _storage._sourceContextField != other_storage._sourceContextField {return false}
        if _storage._structField != other_storage._structField {return false}
        if _storage._timestampField != other_storage._timestampField {return false}
        if _storage._typeField != other_storage._typeField {return false}
        if _storage._doubleField != other_storage._doubleField {return false}
        if _storage._floatField != other_storage._floatField {return false}
        if _storage._int64Field != other_storage._int64Field {return false}
        if _storage._uint64Field != other_storage._uint64Field {return false}
        if _storage._int32Field != other_storage._int32Field {return false}
        if _storage._uint32Field != other_storage._uint32Field {return false}
        if _storage._boolField != other_storage._boolField {return false}
        if _storage._stringField != other_storage._stringField {return false}
        if _storage._bytesField != other_storage._bytesField {return false}
        if _storage._valueField != other_storage._valueField {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension ProtobufUnittest_RepeatedWellKnownTypes: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "any_field"),
    2: .standard(proto: "api_field"),
    3: .standard(proto: "duration_field"),
    4: .standard(proto: "empty_field"),
    5: .standard(proto: "field_mask_field"),
    6: .standard(proto: "source_context_field"),
    7: .standard(proto: "struct_field"),
    8: .standard(proto: "timestamp_field"),
    9: .standard(proto: "type_field"),
    10: .standard(proto: "double_field"),
    11: .standard(proto: "float_field"),
    12: .standard(proto: "int64_field"),
    13: .standard(proto: "uint64_field"),
    14: .standard(proto: "int32_field"),
    15: .standard(proto: "uint32_field"),
    16: .standard(proto: "bool_field"),
    17: .standard(proto: "string_field"),
    18: .standard(proto: "bytes_field"),
  ]

  fileprivate class _StorageClass {
    var _anyField: [SwiftProtobuf.Google_Protobuf_Any] = []
    var _apiField: [SwiftProtobuf.Google_Protobuf_Api] = []
    var _durationField: [SwiftProtobuf.Google_Protobuf_Duration] = []
    var _emptyField: [SwiftProtobuf.Google_Protobuf_Empty] = []
    var _fieldMaskField: [SwiftProtobuf.Google_Protobuf_FieldMask] = []
    var _sourceContextField: [SwiftProtobuf.Google_Protobuf_SourceContext] = []
    var _structField: [SwiftProtobuf.Google_Protobuf_Struct] = []
    var _timestampField: [SwiftProtobuf.Google_Protobuf_Timestamp] = []
    var _typeField: [SwiftProtobuf.Google_Protobuf_Type] = []
    var _doubleField: [SwiftProtobuf.Google_Protobuf_DoubleValue] = []
    var _floatField: [SwiftProtobuf.Google_Protobuf_FloatValue] = []
    var _int64Field: [SwiftProtobuf.Google_Protobuf_Int64Value] = []
    var _uint64Field: [SwiftProtobuf.Google_Protobuf_UInt64Value] = []
    var _int32Field: [SwiftProtobuf.Google_Protobuf_Int32Value] = []
    var _uint32Field: [SwiftProtobuf.Google_Protobuf_UInt32Value] = []
    var _boolField: [SwiftProtobuf.Google_Protobuf_BoolValue] = []
    var _stringField: [SwiftProtobuf.Google_Protobuf_StringValue] = []
    var _bytesField: [SwiftProtobuf.Google_Protobuf_BytesValue] = []

    init() {}

    init(copying source: _StorageClass) {
      _anyField = source._anyField
      _apiField = source._apiField
      _durationField = source._durationField
      _emptyField = source._emptyField
      _fieldMaskField = source._fieldMaskField
      _sourceContextField = source._sourceContextField
      _structField = source._structField
      _timestampField = source._timestampField
      _typeField = source._typeField
      _doubleField = source._doubleField
      _floatField = source._floatField
      _int64Field = source._int64Field
      _uint64Field = source._uint64Field
      _int32Field = source._int32Field
      _uint32Field = source._uint32Field
      _boolField = source._boolField
      _stringField = source._stringField
      _bytesField = source._bytesField
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  func _protobuf_generated_isEqualTo(other: ProtobufUnittest_RepeatedWellKnownTypes) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._anyField != other_storage._anyField {return false}
        if _storage._apiField != other_storage._apiField {return false}
        if _storage._durationField != other_storage._durationField {return false}
        if _storage._emptyField != other_storage._emptyField {return false}
        if _storage._fieldMaskField != other_storage._fieldMaskField {return false}
        if _storage._sourceContextField != other_storage._sourceContextField {return false}
        if _storage._structField != other_storage._structField {return false}
        if _storage._timestampField != other_storage._timestampField {return false}
        if _storage._typeField != other_storage._typeField {return false}
        if _storage._doubleField != other_storage._doubleField {return false}
        if _storage._floatField != other_storage._floatField {return false}
        if _storage._int64Field != other_storage._int64Field {return false}
        if _storage._uint64Field != other_storage._uint64Field {return false}
        if _storage._int32Field != other_storage._int32Field {return false}
        if _storage._uint32Field != other_storage._uint32Field {return false}
        if _storage._boolField != other_storage._boolField {return false}
        if _storage._stringField != other_storage._stringField {return false}
        if _storage._bytesField != other_storage._bytesField {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension ProtobufUnittest_OneofWellKnownTypes: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "any_field"),
    2: .standard(proto: "api_field"),
    3: .standard(proto: "duration_field"),
    4: .standard(proto: "empty_field"),
    5: .standard(proto: "field_mask_field"),
    6: .standard(proto: "source_context_field"),
    7: .standard(proto: "struct_field"),
    8: .standard(proto: "timestamp_field"),
    9: .standard(proto: "type_field"),
    10: .standard(proto: "double_field"),
    11: .standard(proto: "float_field"),
    12: .standard(proto: "int64_field"),
    13: .standard(proto: "uint64_field"),
    14: .standard(proto: "int32_field"),
    15: .standard(proto: "uint32_field"),
    16: .standard(proto: "bool_field"),
    17: .standard(proto: "string_field"),
    18: .standard(proto: "bytes_field"),
  ]

  fileprivate class _StorageClass {
    var _oneofField: ProtobufUnittest_OneofWellKnownTypes.OneOf_OneofField?

    init() {}

    init(copying source: _StorageClass) {
      _oneofField = source._oneofField
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  func _protobuf_generated_isEqualTo(other: ProtobufUnittest_OneofWellKnownTypes) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._oneofField != other_storage._oneofField {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension ProtobufUnittest_MapWellKnownTypes: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "any_field"),
    2: .standard(proto: "api_field"),
    3: .standard(proto: "duration_field"),
    4: .standard(proto: "empty_field"),
    5: .standard(proto: "field_mask_field"),
    6: .standard(proto: "source_context_field"),
    7: .standard(proto: "struct_field"),
    8: .standard(proto: "timestamp_field"),
    9: .standard(proto: "type_field"),
    10: .standard(proto: "double_field"),
    11: .standard(proto: "float_field"),
    12: .standard(proto: "int64_field"),
    13: .standard(proto: "uint64_field"),
    14: .standard(proto: "int32_field"),
    15: .standard(proto: "uint32_field"),
    16: .standard(proto: "bool_field"),
    17: .standard(proto: "string_field"),
    18: .standard(proto: "bytes_field"),
  ]

  fileprivate class _StorageClass {
    var _anyField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_Any> = [:]
    var _apiField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_Api> = [:]
    var _durationField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_Duration> = [:]
    var _emptyField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_Empty> = [:]
    var _fieldMaskField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_FieldMask> = [:]
    var _sourceContextField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_SourceContext> = [:]
    var _structField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_Struct> = [:]
    var _timestampField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_Timestamp> = [:]
    var _typeField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_Type> = [:]
    var _doubleField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_DoubleValue> = [:]
    var _floatField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_FloatValue> = [:]
    var _int64Field: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_Int64Value> = [:]
    var _uint64Field: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_UInt64Value> = [:]
    var _int32Field: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_Int32Value> = [:]
    var _uint32Field: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_UInt32Value> = [:]
    var _boolField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_BoolValue> = [:]
    var _stringField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_StringValue> = [:]
    var _bytesField: Dictionary<Int32,SwiftProtobuf.Google_Protobuf_BytesValue> = [:]

    init() {}

    init(copying source: _StorageClass) {
      _anyField = source._anyField
      _apiField = source._apiField
      _durationField = source._durationField
      _emptyField = source._emptyField
      _fieldMaskField = source._fieldMaskField
      _sourceContextField = source._sourceContextField
      _structField = source._structField
      _timestampField = source._timestampField
      _typeField = source._typeField
      _doubleField = source._doubleField
      _floatField = source._floatField
      _int64Field = source._int64Field
      _uint64Field = source._uint64Field
      _int32Field = source._int32Field
      _uint32Field = source._uint32Field
      _boolField = source._boolField
      _stringField = source._stringField
      _bytesField = source._bytesField
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  func _protobuf_generated_isEqualTo(other: ProtobufUnittest_MapWellKnownTypes) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._anyField != other_storage._anyField {return false}
        if _storage._apiField != other_storage._apiField {return false}
        if _storage._durationField != other_storage._durationField {return false}
        if _storage._emptyField != other_storage._emptyField {return false}
        if _storage._fieldMaskField != other_storage._fieldMaskField {return false}
        if _storage._sourceContextField != other_storage._sourceContextField {return false}
        if _storage._structField != other_storage._structField {return false}
        if _storage._timestampField != other_storage._timestampField {return false}
        if _storage._typeField != other_storage._typeField {return false}
        if _storage._doubleField != other_storage._doubleField {return false}
        if _storage._floatField != other_storage._floatField {return false}
        if _storage._int64Field != other_storage._int64Field {return false}
        if _storage._uint64Field != other_storage._uint64Field {return false}
        if _storage._int32Field != other_storage._int32Field {return false}
        if _storage._uint32Field != other_storage._uint32Field {return false}
        if _storage._boolField != other_storage._boolField {return false}
        if _storage._stringField != other_storage._stringField {return false}
        if _storage._bytesField != other_storage._bytesField {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}
