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

// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc.  All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
//     * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//     * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
//     * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// Test schema for proto3 messages.  This test schema is used by:
//
// - benchmarks
// - fuzz tests
// - conformance tests

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
}

enum ProtobufTestMessages_Proto3_ForeignEnum: SwiftProtobuf.Enum {
  typealias RawValue = Int
  case foreignFoo // = 0
  case foreignBar // = 1
  case foreignBaz // = 2
  case UNRECOGNIZED(Int)

  init() {
    self = .foreignFoo
  }

  init?(rawValue: Int) {
    switch rawValue {
    case 0: self = .foreignFoo
    case 1: self = .foreignBar
    case 2: self = .foreignBaz
    default: self = .UNRECOGNIZED(rawValue)
    }
  }

  var rawValue: Int {
    switch self {
    case .foreignFoo: return 0
    case .foreignBar: return 1
    case .foreignBaz: return 2
    case .UNRECOGNIZED(let i): return i
    }
  }

}

#if swift(>=4.2)

extension ProtobufTestMessages_Proto3_ForeignEnum: CaseIterable {
  // The compiler won't synthesize support with the UNRECOGNIZED case.
  static var allCases: [ProtobufTestMessages_Proto3_ForeignEnum] = [
    .foreignFoo,
    .foreignBar,
    .foreignBaz,
  ]
}

#endif  // swift(>=4.2)

/// This proto includes every type of field in both singular and repeated
/// forms.
///
/// Also, crucially, all messages and enums in this file are eventually
/// submessages of this message.  So for example, a fuzz test of TestAllTypes
/// could trigger bugs that occur in any message type in this file.  We verify
/// this stays true in a unit test.
struct ProtobufTestMessages_Proto3_TestAllTypesProto3 {
  // SwiftProtobuf.Message conformance is added in an extension below. See the
  // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
  // methods supported on all messages.

  /// Singular
  var optionalInt32: Int32 {
    get {return _storage._optionalInt32}
    set {_uniqueStorage()._optionalInt32 = newValue}
  }

  var optionalInt64: Int64 {
    get {return _storage._optionalInt64}
    set {_uniqueStorage()._optionalInt64 = newValue}
  }

  var optionalUint32: UInt32 {
    get {return _storage._optionalUint32}
    set {_uniqueStorage()._optionalUint32 = newValue}
  }

  var optionalUint64: UInt64 {
    get {return _storage._optionalUint64}
    set {_uniqueStorage()._optionalUint64 = newValue}
  }

  var optionalSint32: Int32 {
    get {return _storage._optionalSint32}
    set {_uniqueStorage()._optionalSint32 = newValue}
  }

  var optionalSint64: Int64 {
    get {return _storage._optionalSint64}
    set {_uniqueStorage()._optionalSint64 = newValue}
  }

  var optionalFixed32: UInt32 {
    get {return _storage._optionalFixed32}
    set {_uniqueStorage()._optionalFixed32 = newValue}
  }

  var optionalFixed64: UInt64 {
    get {return _storage._optionalFixed64}
    set {_uniqueStorage()._optionalFixed64 = newValue}
  }

  var optionalSfixed32: Int32 {
    get {return _storage._optionalSfixed32}
    set {_uniqueStorage()._optionalSfixed32 = newValue}
  }

  var optionalSfixed64: Int64 {
    get {return _storage._optionalSfixed64}
    set {_uniqueStorage()._optionalSfixed64 = newValue}
  }

  var optionalFloat: Float {
    get {return _storage._optionalFloat}
    set {_uniqueStorage()._optionalFloat = newValue}
  }

  var optionalDouble: Double {
    get {return _storage._optionalDouble}
    set {_uniqueStorage()._optionalDouble = newValue}
  }

  var optionalBool: Bool {
    get {return _storage._optionalBool}
    set {_uniqueStorage()._optionalBool = newValue}
  }

  var optionalString: String {
    get {return _storage._optionalString}
    set {_uniqueStorage()._optionalString = newValue}
  }

  var optionalBytes: Data {
    get {return _storage._optionalBytes}
    set {_uniqueStorage()._optionalBytes = newValue}
  }

  var optionalNestedMessage: ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedMessage {
    get {return _storage._optionalNestedMessage ?? ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedMessage()}
    set {_uniqueStorage()._optionalNestedMessage = newValue}
  }
  /// Returns true if `optionalNestedMessage` has been explicitly set.
  var hasOptionalNestedMessage: Bool {return _storage._optionalNestedMessage != nil}
  /// Clears the value of `optionalNestedMessage`. Subsequent reads from it will return its default value.
  mutating func clearOptionalNestedMessage() {_uniqueStorage()._optionalNestedMessage = nil}

  var optionalForeignMessage: ProtobufTestMessages_Proto3_ForeignMessage {
    get {return _storage._optionalForeignMessage ?? ProtobufTestMessages_Proto3_ForeignMessage()}
    set {_uniqueStorage()._optionalForeignMessage = newValue}
  }
  /// Returns true if `optionalForeignMessage` has been explicitly set.
  var hasOptionalForeignMessage: Bool {return _storage._optionalForeignMessage != nil}
  /// Clears the value of `optionalForeignMessage`. Subsequent reads from it will return its default value.
  mutating func clearOptionalForeignMessage() {_uniqueStorage()._optionalForeignMessage = nil}

  var optionalNestedEnum: ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedEnum {
    get {return _storage._optionalNestedEnum}
    set {_uniqueStorage()._optionalNestedEnum = newValue}
  }

  var optionalForeignEnum: ProtobufTestMessages_Proto3_ForeignEnum {
    get {return _storage._optionalForeignEnum}
    set {_uniqueStorage()._optionalForeignEnum = newValue}
  }

  var optionalAliasedEnum: ProtobufTestMessages_Proto3_TestAllTypesProto3.AliasedEnum {
    get {return _storage._optionalAliasedEnum}
    set {_uniqueStorage()._optionalAliasedEnum = newValue}
  }

  var optionalStringPiece: String {
    get {return _storage._optionalStringPiece}
    set {_uniqueStorage()._optionalStringPiece = newValue}
  }

  var optionalCord: String {
    get {return _storage._optionalCord}
    set {_uniqueStorage()._optionalCord = newValue}
  }

  var recursiveMessage: ProtobufTestMessages_Proto3_TestAllTypesProto3 {
    get {return _storage._recursiveMessage ?? ProtobufTestMessages_Proto3_TestAllTypesProto3()}
    set {_uniqueStorage()._recursiveMessage = newValue}
  }
  /// Returns true if `recursiveMessage` has been explicitly set.
  var hasRecursiveMessage: Bool {return _storage._recursiveMessage != nil}
  /// Clears the value of `recursiveMessage`. Subsequent reads from it will return its default value.
  mutating func clearRecursiveMessage() {_uniqueStorage()._recursiveMessage = nil}

  /// Repeated
  var repeatedInt32: [Int32] {
    get {return _storage._repeatedInt32}
    set {_uniqueStorage()._repeatedInt32 = newValue}
  }

  var repeatedInt64: [Int64] {
    get {return _storage._repeatedInt64}
    set {_uniqueStorage()._repeatedInt64 = newValue}
  }

  var repeatedUint32: [UInt32] {
    get {return _storage._repeatedUint32}
    set {_uniqueStorage()._repeatedUint32 = newValue}
  }

  var repeatedUint64: [UInt64] {
    get {return _storage._repeatedUint64}
    set {_uniqueStorage()._repeatedUint64 = newValue}
  }

  var repeatedSint32: [Int32] {
    get {return _storage._repeatedSint32}
    set {_uniqueStorage()._repeatedSint32 = newValue}
  }

  var repeatedSint64: [Int64] {
    get {return _storage._repeatedSint64}
    set {_uniqueStorage()._repeatedSint64 = newValue}
  }

  var repeatedFixed32: [UInt32] {
    get {return _storage._repeatedFixed32}
    set {_uniqueStorage()._repeatedFixed32 = newValue}
  }

  var repeatedFixed64: [UInt64] {
    get {return _storage._repeatedFixed64}
    set {_uniqueStorage()._repeatedFixed64 = newValue}
  }

  var repeatedSfixed32: [Int32] {
    get {return _storage._repeatedSfixed32}
    set {_uniqueStorage()._repeatedSfixed32 = newValue}
  }

  var repeatedSfixed64: [Int64] {
    get {return _storage._repeatedSfixed64}
    set {_uniqueStorage()._repeatedSfixed64 = newValue}
  }

  var repeatedFloat: [Float] {
    get {return _storage._repeatedFloat}
    set {_uniqueStorage()._repeatedFloat = newValue}
  }

  var repeatedDouble: [Double] {
    get {return _storage._repeatedDouble}
    set {_uniqueStorage()._repeatedDouble = newValue}
  }

  var repeatedBool: [Bool] {
    get {return _storage._repeatedBool}
    set {_uniqueStorage()._repeatedBool = newValue}
  }

  var repeatedString: [String] {
    get {return _storage._repeatedString}
    set {_uniqueStorage()._repeatedString = newValue}
  }

  var repeatedBytes: [Data] {
    get {return _storage._repeatedBytes}
    set {_uniqueStorage()._repeatedBytes = newValue}
  }

  var repeatedNestedMessage: [ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedMessage] {
    get {return _storage._repeatedNestedMessage}
    set {_uniqueStorage()._repeatedNestedMessage = newValue}
  }

  var repeatedForeignMessage: [ProtobufTestMessages_Proto3_ForeignMessage] {
    get {return _storage._repeatedForeignMessage}
    set {_uniqueStorage()._repeatedForeignMessage = newValue}
  }

  var repeatedNestedEnum: [ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedEnum] {
    get {return _storage._repeatedNestedEnum}
    set {_uniqueStorage()._repeatedNestedEnum = newValue}
  }

  var repeatedForeignEnum: [ProtobufTestMessages_Proto3_ForeignEnum] {
    get {return _storage._repeatedForeignEnum}
    set {_uniqueStorage()._repeatedForeignEnum = newValue}
  }

  var repeatedStringPiece: [String] {
    get {return _storage._repeatedStringPiece}
    set {_uniqueStorage()._repeatedStringPiece = newValue}
  }

  var repeatedCord: [String] {
    get {return _storage._repeatedCord}
    set {_uniqueStorage()._repeatedCord = newValue}
  }

  /// Map
  var mapInt32Int32: Dictionary<Int32,Int32> {
    get {return _storage._mapInt32Int32}
    set {_uniqueStorage()._mapInt32Int32 = newValue}
  }

  var mapInt64Int64: Dictionary<Int64,Int64> {
    get {return _storage._mapInt64Int64}
    set {_uniqueStorage()._mapInt64Int64 = newValue}
  }

  var mapUint32Uint32: Dictionary<UInt32,UInt32> {
    get {return _storage._mapUint32Uint32}
    set {_uniqueStorage()._mapUint32Uint32 = newValue}
  }

  var mapUint64Uint64: Dictionary<UInt64,UInt64> {
    get {return _storage._mapUint64Uint64}
    set {_uniqueStorage()._mapUint64Uint64 = newValue}
  }

  var mapSint32Sint32: Dictionary<Int32,Int32> {
    get {return _storage._mapSint32Sint32}
    set {_uniqueStorage()._mapSint32Sint32 = newValue}
  }

  var mapSint64Sint64: Dictionary<Int64,Int64> {
    get {return _storage._mapSint64Sint64}
    set {_uniqueStorage()._mapSint64Sint64 = newValue}
  }

  var mapFixed32Fixed32: Dictionary<UInt32,UInt32> {
    get {return _storage._mapFixed32Fixed32}
    set {_uniqueStorage()._mapFixed32Fixed32 = newValue}
  }

  var mapFixed64Fixed64: Dictionary<UInt64,UInt64> {
    get {return _storage._mapFixed64Fixed64}
    set {_uniqueStorage()._mapFixed64Fixed64 = newValue}
  }

  var mapSfixed32Sfixed32: Dictionary<Int32,Int32> {
    get {return _storage._mapSfixed32Sfixed32}
    set {_uniqueStorage()._mapSfixed32Sfixed32 = newValue}
  }

  var mapSfixed64Sfixed64: Dictionary<Int64,Int64> {
    get {return _storage._mapSfixed64Sfixed64}
    set {_uniqueStorage()._mapSfixed64Sfixed64 = newValue}
  }

  var mapInt32Float: Dictionary<Int32,Float> {
    get {return _storage._mapInt32Float}
    set {_uniqueStorage()._mapInt32Float = newValue}
  }

  var mapInt32Double: Dictionary<Int32,Double> {
    get {return _storage._mapInt32Double}
    set {_uniqueStorage()._mapInt32Double = newValue}
  }

  var mapBoolBool: Dictionary<Bool,Bool> {
    get {return _storage._mapBoolBool}
    set {_uniqueStorage()._mapBoolBool = newValue}
  }

  var mapStringString: Dictionary<String,String> {
    get {return _storage._mapStringString}
    set {_uniqueStorage()._mapStringString = newValue}
  }

  var mapStringBytes: Dictionary<String,Data> {
    get {return _storage._mapStringBytes}
    set {_uniqueStorage()._mapStringBytes = newValue}
  }

  var mapStringNestedMessage: Dictionary<String,ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedMessage> {
    get {return _storage._mapStringNestedMessage}
    set {_uniqueStorage()._mapStringNestedMessage = newValue}
  }

  var mapStringForeignMessage: Dictionary<String,ProtobufTestMessages_Proto3_ForeignMessage> {
    get {return _storage._mapStringForeignMessage}
    set {_uniqueStorage()._mapStringForeignMessage = newValue}
  }

  var mapStringNestedEnum: Dictionary<String,ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedEnum> {
    get {return _storage._mapStringNestedEnum}
    set {_uniqueStorage()._mapStringNestedEnum = newValue}
  }

  var mapStringForeignEnum: Dictionary<String,ProtobufTestMessages_Proto3_ForeignEnum> {
    get {return _storage._mapStringForeignEnum}
    set {_uniqueStorage()._mapStringForeignEnum = newValue}
  }

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

  var oneofUint32: UInt32 {
    get {
      if case .oneofUint32(let v)? = _storage._oneofField {return v}
      return 0
    }
    set {_uniqueStorage()._oneofField = .oneofUint32(newValue)}
  }

  var oneofNestedMessage: ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedMessage {
    get {
      if case .oneofNestedMessage(let v)? = _storage._oneofField {return v}
      return ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedMessage()
    }
    set {_uniqueStorage()._oneofField = .oneofNestedMessage(newValue)}
  }

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

  var oneofBytes: Data {
    get {
      if case .oneofBytes(let v)? = _storage._oneofField {return v}
      return SwiftProtobuf.Internal.emptyData
    }
    set {_uniqueStorage()._oneofField = .oneofBytes(newValue)}
  }

  var oneofBool: Bool {
    get {
      if case .oneofBool(let v)? = _storage._oneofField {return v}
      return false
    }
    set {_uniqueStorage()._oneofField = .oneofBool(newValue)}
  }

  var oneofUint64: UInt64 {
    get {
      if case .oneofUint64(let v)? = _storage._oneofField {return v}
      return 0
    }
    set {_uniqueStorage()._oneofField = .oneofUint64(newValue)}
  }

  var oneofFloat: Float {
    get {
      if case .oneofFloat(let v)? = _storage._oneofField {return v}
      return 0
    }
    set {_uniqueStorage()._oneofField = .oneofFloat(newValue)}
  }

  var oneofDouble: Double {
    get {
      if case .oneofDouble(let v)? = _storage._oneofField {return v}
      return 0
    }
    set {_uniqueStorage()._oneofField = .oneofDouble(newValue)}
  }

  var oneofEnum: ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedEnum {
    get {
      if case .oneofEnum(let v)? = _storage._oneofField {return v}
      return .foo
    }
    set {_uniqueStorage()._oneofField = .oneofEnum(newValue)}
  }

  /// Well-known types
  var optionalBoolWrapper: SwiftProtobuf.Google_Protobuf_BoolValue {
    get {return _storage._optionalBoolWrapper ?? SwiftProtobuf.Google_Protobuf_BoolValue()}
    set {_uniqueStorage()._optionalBoolWrapper = newValue}
  }
  /// Returns true if `optionalBoolWrapper` has been explicitly set.
  var hasOptionalBoolWrapper: Bool {return _storage._optionalBoolWrapper != nil}
  /// Clears the value of `optionalBoolWrapper`. Subsequent reads from it will return its default value.
  mutating func clearOptionalBoolWrapper() {_uniqueStorage()._optionalBoolWrapper = nil}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  var repeatedDoubleWrapper: [SwiftProtobuf.Google_Protobuf_DoubleValue] {
    get {return _storage._repeatedDoubleWrapper}
    set {_uniqueStorage()._repeatedDoubleWrapper = newValue}
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

  var repeatedValue: [SwiftProtobuf.Google_Protobuf_Value] {
    get {return _storage._repeatedValue}
    set {_uniqueStorage()._repeatedValue = newValue}
  }

  var repeatedListValue: [SwiftProtobuf.Google_Protobuf_ListValue] {
    get {return _storage._repeatedListValue}
    set {_uniqueStorage()._repeatedListValue = newValue}
  }

  /// Test field-name-to-JSON-name convention.
  /// (protobuf says names can be any valid C/C++ identifier.)
  var fieldname1: Int32 {
    get {return _storage._fieldname1}
    set {_uniqueStorage()._fieldname1 = newValue}
  }

  var fieldName2: Int32 {
    get {return _storage._fieldName2}
    set {_uniqueStorage()._fieldName2 = newValue}
  }

  var fieldName3: Int32 {
    get {return _storage._fieldName3}
    set {_uniqueStorage()._fieldName3 = newValue}
  }

  var field_Name4_: Int32 {
    get {return _storage._field_Name4_}
    set {_uniqueStorage()._field_Name4_ = newValue}
  }

  var field0Name5: Int32 {
    get {return _storage._field0Name5}
    set {_uniqueStorage()._field0Name5 = newValue}
  }

  var field0Name6: Int32 {
    get {return _storage._field0Name6}
    set {_uniqueStorage()._field0Name6 = newValue}
  }

  var fieldName7: Int32 {
    get {return _storage._fieldName7}
    set {_uniqueStorage()._fieldName7 = newValue}
  }

  var fieldName8: Int32 {
    get {return _storage._fieldName8}
    set {_uniqueStorage()._fieldName8 = newValue}
  }

  var fieldName9: Int32 {
    get {return _storage._fieldName9}
    set {_uniqueStorage()._fieldName9 = newValue}
  }

  var fieldName10: Int32 {
    get {return _storage._fieldName10}
    set {_uniqueStorage()._fieldName10 = newValue}
  }

  var fieldName11: Int32 {
    get {return _storage._fieldName11}
    set {_uniqueStorage()._fieldName11 = newValue}
  }

  var fieldName12: Int32 {
    get {return _storage._fieldName12}
    set {_uniqueStorage()._fieldName12 = newValue}
  }

  var _FieldName13: Int32 {
    get {return _storage.__FieldName13}
    set {_uniqueStorage().__FieldName13 = newValue}
  }

  var _FieldName14: Int32 {
    get {return _storage.__FieldName14}
    set {_uniqueStorage().__FieldName14 = newValue}
  }

  var field_Name15: Int32 {
    get {return _storage._field_Name15}
    set {_uniqueStorage()._field_Name15 = newValue}
  }

  var field_Name16: Int32 {
    get {return _storage._field_Name16}
    set {_uniqueStorage()._field_Name16 = newValue}
  }

  var fieldName17__: Int32 {
    get {return _storage._fieldName17__}
    set {_uniqueStorage()._fieldName17__ = newValue}
  }

  var fieldName18__: Int32 {
    get {return _storage._fieldName18__}
    set {_uniqueStorage()._fieldName18__ = newValue}
  }

  var unknownFields = SwiftProtobuf.UnknownStorage()

  enum OneOf_OneofField: Equatable {
    case oneofUint32(UInt32)
    case oneofNestedMessage(ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedMessage)
    case oneofString(String)
    case oneofBytes(Data)
    case oneofBool(Bool)
    case oneofUint64(UInt64)
    case oneofFloat(Float)
    case oneofDouble(Double)
    case oneofEnum(ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedEnum)

  #if !swift(>=4.1)
    static func ==(lhs: ProtobufTestMessages_Proto3_TestAllTypesProto3.OneOf_OneofField, rhs: ProtobufTestMessages_Proto3_TestAllTypesProto3.OneOf_OneofField) -> Bool {
      switch (lhs, rhs) {
      case (.oneofUint32(let l), .oneofUint32(let r)): return l == r
      case (.oneofNestedMessage(let l), .oneofNestedMessage(let r)): return l == r
      case (.oneofString(let l), .oneofString(let r)): return l == r
      case (.oneofBytes(let l), .oneofBytes(let r)): return l == r
      case (.oneofBool(let l), .oneofBool(let r)): return l == r
      case (.oneofUint64(let l), .oneofUint64(let r)): return l == r
      case (.oneofFloat(let l), .oneofFloat(let r)): return l == r
      case (.oneofDouble(let l), .oneofDouble(let r)): return l == r
      case (.oneofEnum(let l), .oneofEnum(let r)): return l == r
      default: return false
      }
    }
  #endif
  }

  enum NestedEnum: SwiftProtobuf.Enum {
    typealias RawValue = Int
    case foo // = 0
    case bar // = 1
    case baz // = 2

    /// Intentionally negative.
    case neg // = -1
    case UNRECOGNIZED(Int)

    init() {
      self = .foo
    }

    init?(rawValue: Int) {
      switch rawValue {
      case -1: self = .neg
      case 0: self = .foo
      case 1: self = .bar
      case 2: self = .baz
      default: self = .UNRECOGNIZED(rawValue)
      }
    }

    var rawValue: Int {
      switch self {
      case .neg: return -1
      case .foo: return 0
      case .bar: return 1
      case .baz: return 2
      case .UNRECOGNIZED(let i): return i
      }
    }

  }

  enum AliasedEnum: SwiftProtobuf.Enum {
    typealias RawValue = Int
    case aliasFoo // = 0
    case aliasBar // = 1
    case aliasBaz // = 2
    static let qux = aliasBaz
    static let bAz = aliasBaz
    case UNRECOGNIZED(Int)

    init() {
      self = .aliasFoo
    }

    init?(rawValue: Int) {
      switch rawValue {
      case 0: self = .aliasFoo
      case 1: self = .aliasBar
      case 2: self = .aliasBaz
      default: self = .UNRECOGNIZED(rawValue)
      }
    }

    var rawValue: Int {
      switch self {
      case .aliasFoo: return 0
      case .aliasBar: return 1
      case .aliasBaz: return 2
      case .UNRECOGNIZED(let i): return i
      }
    }

  }

  struct NestedMessage {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    var a: Int32 {
      get {return _storage._a}
      set {_uniqueStorage()._a = newValue}
    }

    var corecursive: ProtobufTestMessages_Proto3_TestAllTypesProto3 {
      get {return _storage._corecursive ?? ProtobufTestMessages_Proto3_TestAllTypesProto3()}
      set {_uniqueStorage()._corecursive = newValue}
    }
    /// Returns true if `corecursive` has been explicitly set.
    var hasCorecursive: Bool {return _storage._corecursive != nil}
    /// Clears the value of `corecursive`. Subsequent reads from it will return its default value.
    mutating func clearCorecursive() {_uniqueStorage()._corecursive = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    init() {}

    fileprivate var _storage = _StorageClass.defaultInstance
  }

  init() {}

  fileprivate var _storage = _StorageClass.defaultInstance
}

#if swift(>=4.2)

extension ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedEnum: CaseIterable {
  // The compiler won't synthesize support with the UNRECOGNIZED case.
  static var allCases: [ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedEnum] = [
    .foo,
    .bar,
    .baz,
    .neg,
  ]
}

extension ProtobufTestMessages_Proto3_TestAllTypesProto3.AliasedEnum: CaseIterable {
  // The compiler won't synthesize support with the UNRECOGNIZED case.
  static var allCases: [ProtobufTestMessages_Proto3_TestAllTypesProto3.AliasedEnum] = [
    .aliasFoo,
    .aliasBar,
    .aliasBaz,
  ]
}

#endif  // swift(>=4.2)

struct ProtobufTestMessages_Proto3_ForeignMessage {
  // SwiftProtobuf.Message conformance is added in an extension below. See the
  // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
  // methods supported on all messages.

  var c: Int32 = 0

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

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

fileprivate let _protobuf_package = "protobuf_test_messages.proto3"

extension ProtobufTestMessages_Proto3_ForeignEnum: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    0: .same(proto: "FOREIGN_FOO"),
    1: .same(proto: "FOREIGN_BAR"),
    2: .same(proto: "FOREIGN_BAZ"),
  ]
}

extension ProtobufTestMessages_Proto3_TestAllTypesProto3: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".TestAllTypesProto3"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "optional_int32"),
    2: .standard(proto: "optional_int64"),
    3: .standard(proto: "optional_uint32"),
    4: .standard(proto: "optional_uint64"),
    5: .standard(proto: "optional_sint32"),
    6: .standard(proto: "optional_sint64"),
    7: .standard(proto: "optional_fixed32"),
    8: .standard(proto: "optional_fixed64"),
    9: .standard(proto: "optional_sfixed32"),
    10: .standard(proto: "optional_sfixed64"),
    11: .standard(proto: "optional_float"),
    12: .standard(proto: "optional_double"),
    13: .standard(proto: "optional_bool"),
    14: .standard(proto: "optional_string"),
    15: .standard(proto: "optional_bytes"),
    18: .standard(proto: "optional_nested_message"),
    19: .standard(proto: "optional_foreign_message"),
    21: .standard(proto: "optional_nested_enum"),
    22: .standard(proto: "optional_foreign_enum"),
    23: .standard(proto: "optional_aliased_enum"),
    24: .standard(proto: "optional_string_piece"),
    25: .standard(proto: "optional_cord"),
    27: .standard(proto: "recursive_message"),
    31: .standard(proto: "repeated_int32"),
    32: .standard(proto: "repeated_int64"),
    33: .standard(proto: "repeated_uint32"),
    34: .standard(proto: "repeated_uint64"),
    35: .standard(proto: "repeated_sint32"),
    36: .standard(proto: "repeated_sint64"),
    37: .standard(proto: "repeated_fixed32"),
    38: .standard(proto: "repeated_fixed64"),
    39: .standard(proto: "repeated_sfixed32"),
    40: .standard(proto: "repeated_sfixed64"),
    41: .standard(proto: "repeated_float"),
    42: .standard(proto: "repeated_double"),
    43: .standard(proto: "repeated_bool"),
    44: .standard(proto: "repeated_string"),
    45: .standard(proto: "repeated_bytes"),
    48: .standard(proto: "repeated_nested_message"),
    49: .standard(proto: "repeated_foreign_message"),
    51: .standard(proto: "repeated_nested_enum"),
    52: .standard(proto: "repeated_foreign_enum"),
    54: .standard(proto: "repeated_string_piece"),
    55: .standard(proto: "repeated_cord"),
    56: .standard(proto: "map_int32_int32"),
    57: .standard(proto: "map_int64_int64"),
    58: .standard(proto: "map_uint32_uint32"),
    59: .standard(proto: "map_uint64_uint64"),
    60: .standard(proto: "map_sint32_sint32"),
    61: .standard(proto: "map_sint64_sint64"),
    62: .standard(proto: "map_fixed32_fixed32"),
    63: .standard(proto: "map_fixed64_fixed64"),
    64: .standard(proto: "map_sfixed32_sfixed32"),
    65: .standard(proto: "map_sfixed64_sfixed64"),
    66: .standard(proto: "map_int32_float"),
    67: .standard(proto: "map_int32_double"),
    68: .standard(proto: "map_bool_bool"),
    69: .standard(proto: "map_string_string"),
    70: .standard(proto: "map_string_bytes"),
    71: .standard(proto: "map_string_nested_message"),
    72: .standard(proto: "map_string_foreign_message"),
    73: .standard(proto: "map_string_nested_enum"),
    74: .standard(proto: "map_string_foreign_enum"),
    111: .standard(proto: "oneof_uint32"),
    112: .standard(proto: "oneof_nested_message"),
    113: .standard(proto: "oneof_string"),
    114: .standard(proto: "oneof_bytes"),
    115: .standard(proto: "oneof_bool"),
    116: .standard(proto: "oneof_uint64"),
    117: .standard(proto: "oneof_float"),
    118: .standard(proto: "oneof_double"),
    119: .standard(proto: "oneof_enum"),
    201: .standard(proto: "optional_bool_wrapper"),
    202: .standard(proto: "optional_int32_wrapper"),
    203: .standard(proto: "optional_int64_wrapper"),
    204: .standard(proto: "optional_uint32_wrapper"),
    205: .standard(proto: "optional_uint64_wrapper"),
    206: .standard(proto: "optional_float_wrapper"),
    207: .standard(proto: "optional_double_wrapper"),
    208: .standard(proto: "optional_string_wrapper"),
    209: .standard(proto: "optional_bytes_wrapper"),
    211: .standard(proto: "repeated_bool_wrapper"),
    212: .standard(proto: "repeated_int32_wrapper"),
    213: .standard(proto: "repeated_int64_wrapper"),
    214: .standard(proto: "repeated_uint32_wrapper"),
    215: .standard(proto: "repeated_uint64_wrapper"),
    216: .standard(proto: "repeated_float_wrapper"),
    217: .standard(proto: "repeated_double_wrapper"),
    218: .standard(proto: "repeated_string_wrapper"),
    219: .standard(proto: "repeated_bytes_wrapper"),
    301: .standard(proto: "optional_duration"),
    302: .standard(proto: "optional_timestamp"),
    303: .standard(proto: "optional_field_mask"),
    304: .standard(proto: "optional_struct"),
    305: .standard(proto: "optional_any"),
    306: .standard(proto: "optional_value"),
    311: .standard(proto: "repeated_duration"),
    312: .standard(proto: "repeated_timestamp"),
    313: .standard(proto: "repeated_fieldmask"),
    324: .standard(proto: "repeated_struct"),
    315: .standard(proto: "repeated_any"),
    316: .standard(proto: "repeated_value"),
    317: .standard(proto: "repeated_list_value"),
    401: .same(proto: "fieldname1"),
    402: .standard(proto: "field_name2"),
    403: .standard(proto: "_field_name3"),
    404: .standard(proto: "field__name4_"),
    405: .same(proto: "field0name5"),
    406: .standard(proto: "field_0_name6"),
    407: .same(proto: "fieldName7"),
    408: .same(proto: "FieldName8"),
    409: .standard(proto: "field_Name9"),
    410: .standard(proto: "Field_Name10"),
    411: .standard(proto: "FIELD_NAME11"),
    412: .standard(proto: "FIELD_name12"),
    413: .standard(proto: "__field_name13"),
    414: .standard(proto: "__Field_name14"),
    415: .standard(proto: "field__name15"),
    416: .standard(proto: "field__Name16"),
    417: .standard(proto: "field_name17__"),
    418: .standard(proto: "Field_name18__"),
  ]

  fileprivate class _StorageClass {
    var _optionalInt32: Int32 = 0
    var _optionalInt64: Int64 = 0
    var _optionalUint32: UInt32 = 0
    var _optionalUint64: UInt64 = 0
    var _optionalSint32: Int32 = 0
    var _optionalSint64: Int64 = 0
    var _optionalFixed32: UInt32 = 0
    var _optionalFixed64: UInt64 = 0
    var _optionalSfixed32: Int32 = 0
    var _optionalSfixed64: Int64 = 0
    var _optionalFloat: Float = 0
    var _optionalDouble: Double = 0
    var _optionalBool: Bool = false
    var _optionalString: String = String()
    var _optionalBytes: Data = SwiftProtobuf.Internal.emptyData
    var _optionalNestedMessage: ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedMessage? = nil
    var _optionalForeignMessage: ProtobufTestMessages_Proto3_ForeignMessage? = nil
    var _optionalNestedEnum: ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedEnum = .foo
    var _optionalForeignEnum: ProtobufTestMessages_Proto3_ForeignEnum = .foreignFoo
    var _optionalAliasedEnum: ProtobufTestMessages_Proto3_TestAllTypesProto3.AliasedEnum = .aliasFoo
    var _optionalStringPiece: String = String()
    var _optionalCord: String = String()
    var _recursiveMessage: ProtobufTestMessages_Proto3_TestAllTypesProto3? = nil
    var _repeatedInt32: [Int32] = []
    var _repeatedInt64: [Int64] = []
    var _repeatedUint32: [UInt32] = []
    var _repeatedUint64: [UInt64] = []
    var _repeatedSint32: [Int32] = []
    var _repeatedSint64: [Int64] = []
    var _repeatedFixed32: [UInt32] = []
    var _repeatedFixed64: [UInt64] = []
    var _repeatedSfixed32: [Int32] = []
    var _repeatedSfixed64: [Int64] = []
    var _repeatedFloat: [Float] = []
    var _repeatedDouble: [Double] = []
    var _repeatedBool: [Bool] = []
    var _repeatedString: [String] = []
    var _repeatedBytes: [Data] = []
    var _repeatedNestedMessage: [ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedMessage] = []
    var _repeatedForeignMessage: [ProtobufTestMessages_Proto3_ForeignMessage] = []
    var _repeatedNestedEnum: [ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedEnum] = []
    var _repeatedForeignEnum: [ProtobufTestMessages_Proto3_ForeignEnum] = []
    var _repeatedStringPiece: [String] = []
    var _repeatedCord: [String] = []
    var _mapInt32Int32: Dictionary<Int32,Int32> = [:]
    var _mapInt64Int64: Dictionary<Int64,Int64> = [:]
    var _mapUint32Uint32: Dictionary<UInt32,UInt32> = [:]
    var _mapUint64Uint64: Dictionary<UInt64,UInt64> = [:]
    var _mapSint32Sint32: Dictionary<Int32,Int32> = [:]
    var _mapSint64Sint64: Dictionary<Int64,Int64> = [:]
    var _mapFixed32Fixed32: Dictionary<UInt32,UInt32> = [:]
    var _mapFixed64Fixed64: Dictionary<UInt64,UInt64> = [:]
    var _mapSfixed32Sfixed32: Dictionary<Int32,Int32> = [:]
    var _mapSfixed64Sfixed64: Dictionary<Int64,Int64> = [:]
    var _mapInt32Float: Dictionary<Int32,Float> = [:]
    var _mapInt32Double: Dictionary<Int32,Double> = [:]
    var _mapBoolBool: Dictionary<Bool,Bool> = [:]
    var _mapStringString: Dictionary<String,String> = [:]
    var _mapStringBytes: Dictionary<String,Data> = [:]
    var _mapStringNestedMessage: Dictionary<String,ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedMessage> = [:]
    var _mapStringForeignMessage: Dictionary<String,ProtobufTestMessages_Proto3_ForeignMessage> = [:]
    var _mapStringNestedEnum: Dictionary<String,ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedEnum> = [:]
    var _mapStringForeignEnum: Dictionary<String,ProtobufTestMessages_Proto3_ForeignEnum> = [:]
    var _oneofField: ProtobufTestMessages_Proto3_TestAllTypesProto3.OneOf_OneofField?
    var _optionalBoolWrapper: SwiftProtobuf.Google_Protobuf_BoolValue? = nil
    var _optionalInt32Wrapper: SwiftProtobuf.Google_Protobuf_Int32Value? = nil
    var _optionalInt64Wrapper: SwiftProtobuf.Google_Protobuf_Int64Value? = nil
    var _optionalUint32Wrapper: SwiftProtobuf.Google_Protobuf_UInt32Value? = nil
    var _optionalUint64Wrapper: SwiftProtobuf.Google_Protobuf_UInt64Value? = nil
    var _optionalFloatWrapper: SwiftProtobuf.Google_Protobuf_FloatValue? = nil
    var _optionalDoubleWrapper: SwiftProtobuf.Google_Protobuf_DoubleValue? = nil
    var _optionalStringWrapper: SwiftProtobuf.Google_Protobuf_StringValue? = nil
    var _optionalBytesWrapper: SwiftProtobuf.Google_Protobuf_BytesValue? = nil
    var _repeatedBoolWrapper: [SwiftProtobuf.Google_Protobuf_BoolValue] = []
    var _repeatedInt32Wrapper: [SwiftProtobuf.Google_Protobuf_Int32Value] = []
    var _repeatedInt64Wrapper: [SwiftProtobuf.Google_Protobuf_Int64Value] = []
    var _repeatedUint32Wrapper: [SwiftProtobuf.Google_Protobuf_UInt32Value] = []
    var _repeatedUint64Wrapper: [SwiftProtobuf.Google_Protobuf_UInt64Value] = []
    var _repeatedFloatWrapper: [SwiftProtobuf.Google_Protobuf_FloatValue] = []
    var _repeatedDoubleWrapper: [SwiftProtobuf.Google_Protobuf_DoubleValue] = []
    var _repeatedStringWrapper: [SwiftProtobuf.Google_Protobuf_StringValue] = []
    var _repeatedBytesWrapper: [SwiftProtobuf.Google_Protobuf_BytesValue] = []
    var _optionalDuration: SwiftProtobuf.Google_Protobuf_Duration? = nil
    var _optionalTimestamp: SwiftProtobuf.Google_Protobuf_Timestamp? = nil
    var _optionalFieldMask: SwiftProtobuf.Google_Protobuf_FieldMask? = nil
    var _optionalStruct: SwiftProtobuf.Google_Protobuf_Struct? = nil
    var _optionalAny: SwiftProtobuf.Google_Protobuf_Any? = nil
    var _optionalValue: SwiftProtobuf.Google_Protobuf_Value? = nil
    var _repeatedDuration: [SwiftProtobuf.Google_Protobuf_Duration] = []
    var _repeatedTimestamp: [SwiftProtobuf.Google_Protobuf_Timestamp] = []
    var _repeatedFieldmask: [SwiftProtobuf.Google_Protobuf_FieldMask] = []
    var _repeatedStruct: [SwiftProtobuf.Google_Protobuf_Struct] = []
    var _repeatedAny: [SwiftProtobuf.Google_Protobuf_Any] = []
    var _repeatedValue: [SwiftProtobuf.Google_Protobuf_Value] = []
    var _repeatedListValue: [SwiftProtobuf.Google_Protobuf_ListValue] = []
    var _fieldname1: Int32 = 0
    var _fieldName2: Int32 = 0
    var _fieldName3: Int32 = 0
    var _field_Name4_: Int32 = 0
    var _field0Name5: Int32 = 0
    var _field0Name6: Int32 = 0
    var _fieldName7: Int32 = 0
    var _fieldName8: Int32 = 0
    var _fieldName9: Int32 = 0
    var _fieldName10: Int32 = 0
    var _fieldName11: Int32 = 0
    var _fieldName12: Int32 = 0
    var __FieldName13: Int32 = 0
    var __FieldName14: Int32 = 0
    var _field_Name15: Int32 = 0
    var _field_Name16: Int32 = 0
    var _fieldName17__: Int32 = 0
    var _fieldName18__: Int32 = 0

    static let defaultInstance = _StorageClass()

    private init() {}

    init(copying source: _StorageClass) {
      _optionalInt32 = source._optionalInt32
      _optionalInt64 = source._optionalInt64
      _optionalUint32 = source._optionalUint32
      _optionalUint64 = source._optionalUint64
      _optionalSint32 = source._optionalSint32
      _optionalSint64 = source._optionalSint64
      _optionalFixed32 = source._optionalFixed32
      _optionalFixed64 = source._optionalFixed64
      _optionalSfixed32 = source._optionalSfixed32
      _optionalSfixed64 = source._optionalSfixed64
      _optionalFloat = source._optionalFloat
      _optionalDouble = source._optionalDouble
      _optionalBool = source._optionalBool
      _optionalString = source._optionalString
      _optionalBytes = source._optionalBytes
      _optionalNestedMessage = source._optionalNestedMessage
      _optionalForeignMessage = source._optionalForeignMessage
      _optionalNestedEnum = source._optionalNestedEnum
      _optionalForeignEnum = source._optionalForeignEnum
      _optionalAliasedEnum = source._optionalAliasedEnum
      _optionalStringPiece = source._optionalStringPiece
      _optionalCord = source._optionalCord
      _recursiveMessage = source._recursiveMessage
      _repeatedInt32 = source._repeatedInt32
      _repeatedInt64 = source._repeatedInt64
      _repeatedUint32 = source._repeatedUint32
      _repeatedUint64 = source._repeatedUint64
      _repeatedSint32 = source._repeatedSint32
      _repeatedSint64 = source._repeatedSint64
      _repeatedFixed32 = source._repeatedFixed32
      _repeatedFixed64 = source._repeatedFixed64
      _repeatedSfixed32 = source._repeatedSfixed32
      _repeatedSfixed64 = source._repeatedSfixed64
      _repeatedFloat = source._repeatedFloat
      _repeatedDouble = source._repeatedDouble
      _repeatedBool = source._repeatedBool
      _repeatedString = source._repeatedString
      _repeatedBytes = source._repeatedBytes
      _repeatedNestedMessage = source._repeatedNestedMessage
      _repeatedForeignMessage = source._repeatedForeignMessage
      _repeatedNestedEnum = source._repeatedNestedEnum
      _repeatedForeignEnum = source._repeatedForeignEnum
      _repeatedStringPiece = source._repeatedStringPiece
      _repeatedCord = source._repeatedCord
      _mapInt32Int32 = source._mapInt32Int32
      _mapInt64Int64 = source._mapInt64Int64
      _mapUint32Uint32 = source._mapUint32Uint32
      _mapUint64Uint64 = source._mapUint64Uint64
      _mapSint32Sint32 = source._mapSint32Sint32
      _mapSint64Sint64 = source._mapSint64Sint64
      _mapFixed32Fixed32 = source._mapFixed32Fixed32
      _mapFixed64Fixed64 = source._mapFixed64Fixed64
      _mapSfixed32Sfixed32 = source._mapSfixed32Sfixed32
      _mapSfixed64Sfixed64 = source._mapSfixed64Sfixed64
      _mapInt32Float = source._mapInt32Float
      _mapInt32Double = source._mapInt32Double
      _mapBoolBool = source._mapBoolBool
      _mapStringString = source._mapStringString
      _mapStringBytes = source._mapStringBytes
      _mapStringNestedMessage = source._mapStringNestedMessage
      _mapStringForeignMessage = source._mapStringForeignMessage
      _mapStringNestedEnum = source._mapStringNestedEnum
      _mapStringForeignEnum = source._mapStringForeignEnum
      _oneofField = source._oneofField
      _optionalBoolWrapper = source._optionalBoolWrapper
      _optionalInt32Wrapper = source._optionalInt32Wrapper
      _optionalInt64Wrapper = source._optionalInt64Wrapper
      _optionalUint32Wrapper = source._optionalUint32Wrapper
      _optionalUint64Wrapper = source._optionalUint64Wrapper
      _optionalFloatWrapper = source._optionalFloatWrapper
      _optionalDoubleWrapper = source._optionalDoubleWrapper
      _optionalStringWrapper = source._optionalStringWrapper
      _optionalBytesWrapper = source._optionalBytesWrapper
      _repeatedBoolWrapper = source._repeatedBoolWrapper
      _repeatedInt32Wrapper = source._repeatedInt32Wrapper
      _repeatedInt64Wrapper = source._repeatedInt64Wrapper
      _repeatedUint32Wrapper = source._repeatedUint32Wrapper
      _repeatedUint64Wrapper = source._repeatedUint64Wrapper
      _repeatedFloatWrapper = source._repeatedFloatWrapper
      _repeatedDoubleWrapper = source._repeatedDoubleWrapper
      _repeatedStringWrapper = source._repeatedStringWrapper
      _repeatedBytesWrapper = source._repeatedBytesWrapper
      _optionalDuration = source._optionalDuration
      _optionalTimestamp = source._optionalTimestamp
      _optionalFieldMask = source._optionalFieldMask
      _optionalStruct = source._optionalStruct
      _optionalAny = source._optionalAny
      _optionalValue = source._optionalValue
      _repeatedDuration = source._repeatedDuration
      _repeatedTimestamp = source._repeatedTimestamp
      _repeatedFieldmask = source._repeatedFieldmask
      _repeatedStruct = source._repeatedStruct
      _repeatedAny = source._repeatedAny
      _repeatedValue = source._repeatedValue
      _repeatedListValue = source._repeatedListValue
      _fieldname1 = source._fieldname1
      _fieldName2 = source._fieldName2
      _fieldName3 = source._fieldName3
      _field_Name4_ = source._field_Name4_
      _field0Name5 = source._field0Name5
      _field0Name6 = source._field0Name6
      _fieldName7 = source._fieldName7
      _fieldName8 = source._fieldName8
      _fieldName9 = source._fieldName9
      _fieldName10 = source._fieldName10
      _fieldName11 = source._fieldName11
      _fieldName12 = source._fieldName12
      __FieldName13 = source.__FieldName13
      __FieldName14 = source.__FieldName14
      _field_Name15 = source._field_Name15
      _field_Name16 = source._field_Name16
      _fieldName17__ = source._fieldName17__
      _fieldName18__ = source._fieldName18__
    }
  }

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

  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.decodeSingularInt32Field(value: &_storage._optionalInt32)
        case 2: try decoder.decodeSingularInt64Field(value: &_storage._optionalInt64)
        case 3: try decoder.decodeSingularUInt32Field(value: &_storage._optionalUint32)
        case 4: try decoder.decodeSingularUInt64Field(value: &_storage._optionalUint64)
        case 5: try decoder.decodeSingularSInt32Field(value: &_storage._optionalSint32)
        case 6: try decoder.decodeSingularSInt64Field(value: &_storage._optionalSint64)
        case 7: try decoder.decodeSingularFixed32Field(value: &_storage._optionalFixed32)
        case 8: try decoder.decodeSingularFixed64Field(value: &_storage._optionalFixed64)
        case 9: try decoder.decodeSingularSFixed32Field(value: &_storage._optionalSfixed32)
        case 10: try decoder.decodeSingularSFixed64Field(value: &_storage._optionalSfixed64)
        case 11: try decoder.decodeSingularFloatField(value: &_storage._optionalFloat)
        case 12: try decoder.decodeSingularDoubleField(value: &_storage._optionalDouble)
        case 13: try decoder.decodeSingularBoolField(value: &_storage._optionalBool)
        case 14: try decoder.decodeSingularStringField(value: &_storage._optionalString)
        case 15: try decoder.decodeSingularBytesField(value: &_storage._optionalBytes)
        case 18: try decoder.decodeSingularMessageField(value: &_storage._optionalNestedMessage)
        case 19: try decoder.decodeSingularMessageField(value: &_storage._optionalForeignMessage)
        case 21: try decoder.decodeSingularEnumField(value: &_storage._optionalNestedEnum)
        case 22: try decoder.decodeSingularEnumField(value: &_storage._optionalForeignEnum)
        case 23: try decoder.decodeSingularEnumField(value: &_storage._optionalAliasedEnum)
        case 24: try decoder.decodeSingularStringField(value: &_storage._optionalStringPiece)
        case 25: try decoder.decodeSingularStringField(value: &_storage._optionalCord)
        case 27: try decoder.decodeSingularMessageField(value: &_storage._recursiveMessage)
        case 31: try decoder.decodeRepeatedInt32Field(value: &_storage._repeatedInt32)
        case 32: try decoder.decodeRepeatedInt64Field(value: &_storage._repeatedInt64)
        case 33: try decoder.decodeRepeatedUInt32Field(value: &_storage._repeatedUint32)
        case 34: try decoder.decodeRepeatedUInt64Field(value: &_storage._repeatedUint64)
        case 35: try decoder.decodeRepeatedSInt32Field(value: &_storage._repeatedSint32)
        case 36: try decoder.decodeRepeatedSInt64Field(value: &_storage._repeatedSint64)
        case 37: try decoder.decodeRepeatedFixed32Field(value: &_storage._repeatedFixed32)
        case 38: try decoder.decodeRepeatedFixed64Field(value: &_storage._repeatedFixed64)
        case 39: try decoder.decodeRepeatedSFixed32Field(value: &_storage._repeatedSfixed32)
        case 40: try decoder.decodeRepeatedSFixed64Field(value: &_storage._repeatedSfixed64)
        case 41: try decoder.decodeRepeatedFloatField(value: &_storage._repeatedFloat)
        case 42: try decoder.decodeRepeatedDoubleField(value: &_storage._repeatedDouble)
        case 43: try decoder.decodeRepeatedBoolField(value: &_storage._repeatedBool)
        case 44: try decoder.decodeRepeatedStringField(value: &_storage._repeatedString)
        case 45: try decoder.decodeRepeatedBytesField(value: &_storage._repeatedBytes)
        case 48: try decoder.decodeRepeatedMessageField(value: &_storage._repeatedNestedMessage)
        case 49: try decoder.decodeRepeatedMessageField(value: &_storage._repeatedForeignMessage)
        case 51: try decoder.decodeRepeatedEnumField(value: &_storage._repeatedNestedEnum)
        case 52: try decoder.decodeRepeatedEnumField(value: &_storage._repeatedForeignEnum)
        case 54: try decoder.decodeRepeatedStringField(value: &_storage._repeatedStringPiece)
        case 55: try decoder.decodeRepeatedStringField(value: &_storage._repeatedCord)
        case 56: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.ProtobufInt32>.self, value: &_storage._mapInt32Int32)
        case 57: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufInt64,SwiftProtobuf.ProtobufInt64>.self, value: &_storage._mapInt64Int64)
        case 58: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufUInt32,SwiftProtobuf.ProtobufUInt32>.self, value: &_storage._mapUint32Uint32)
        case 59: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufUInt64,SwiftProtobuf.ProtobufUInt64>.self, value: &_storage._mapUint64Uint64)
        case 60: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufSInt32,SwiftProtobuf.ProtobufSInt32>.self, value: &_storage._mapSint32Sint32)
        case 61: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufSInt64,SwiftProtobuf.ProtobufSInt64>.self, value: &_storage._mapSint64Sint64)
        case 62: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufFixed32,SwiftProtobuf.ProtobufFixed32>.self, value: &_storage._mapFixed32Fixed32)
        case 63: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufFixed64,SwiftProtobuf.ProtobufFixed64>.self, value: &_storage._mapFixed64Fixed64)
        case 64: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufSFixed32,SwiftProtobuf.ProtobufSFixed32>.self, value: &_storage._mapSfixed32Sfixed32)
        case 65: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufSFixed64,SwiftProtobuf.ProtobufSFixed64>.self, value: &_storage._mapSfixed64Sfixed64)
        case 66: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.ProtobufFloat>.self, value: &_storage._mapInt32Float)
        case 67: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.ProtobufDouble>.self, value: &_storage._mapInt32Double)
        case 68: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufBool,SwiftProtobuf.ProtobufBool>.self, value: &_storage._mapBoolBool)
        case 69: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufString,SwiftProtobuf.ProtobufString>.self, value: &_storage._mapStringString)
        case 70: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufString,SwiftProtobuf.ProtobufBytes>.self, value: &_storage._mapStringBytes)
        case 71: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufString,ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedMessage>.self, value: &_storage._mapStringNestedMessage)
        case 72: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufString,ProtobufTestMessages_Proto3_ForeignMessage>.self, value: &_storage._mapStringForeignMessage)
        case 73: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufEnumMap<SwiftProtobuf.ProtobufString,ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedEnum>.self, value: &_storage._mapStringNestedEnum)
        case 74: try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufEnumMap<SwiftProtobuf.ProtobufString,ProtobufTestMessages_Proto3_ForeignEnum>.self, value: &_storage._mapStringForeignEnum)
        case 111:
          if _storage._oneofField != nil {try decoder.handleConflictingOneOf()}
          var v: UInt32?
          try decoder.decodeSingularUInt32Field(value: &v)
          if let v = v {_storage._oneofField = .oneofUint32(v)}
        case 112:
          var v: ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedMessage?
          if let current = _storage._oneofField {
            try decoder.handleConflictingOneOf()
            if case .oneofNestedMessage(let m) = current {v = m}
          }
          try decoder.decodeSingularMessageField(value: &v)
          if let v = v {_storage._oneofField = .oneofNestedMessage(v)}
        case 113:
          if _storage._oneofField != nil {try decoder.handleConflictingOneOf()}
          var v: String?
          try decoder.decodeSingularStringField(value: &v)
          if let v = v {_storage._oneofField = .oneofString(v)}
        case 114:
          if _storage._oneofField != nil {try decoder.handleConflictingOneOf()}
          var v: Data?
          try decoder.decodeSingularBytesField(value: &v)
          if let v = v {_storage._oneofField = .oneofBytes(v)}
        case 115:
          if _storage._oneofField != nil {try decoder.handleConflictingOneOf()}
          var v: Bool?
          try decoder.decodeSingularBoolField(value: &v)
          if let v = v {_storage._oneofField = .oneofBool(v)}
        case 116:
          if _storage._oneofField != nil {try decoder.handleConflictingOneOf()}
          var v: UInt64?
          try decoder.decodeSingularUInt64Field(value: &v)
          if let v = v {_storage._oneofField = .oneofUint64(v)}
        case 117:
          if _storage._oneofField != nil {try decoder.handleConflictingOneOf()}
          var v: Float?
          try decoder.decodeSingularFloatField(value: &v)
          if let v = v {_storage._oneofField = .oneofFloat(v)}
        case 118:
          if _storage._oneofField != nil {try decoder.handleConflictingOneOf()}
          var v: Double?
          try decoder.decodeSingularDoubleField(value: &v)
          if let v = v {_storage._oneofField = .oneofDouble(v)}
        case 119:
          if _storage._oneofField != nil {try decoder.handleConflictingOneOf()}
          var v: ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedEnum?
          try decoder.decodeSingularEnumField(value: &v)
          if let v = v {_storage._oneofField = .oneofEnum(v)}
        case 201: try decoder.decodeSingularMessageField(value: &_storage._optionalBoolWrapper)
        case 202: try decoder.decodeSingularMessageField(value: &_storage._optionalInt32Wrapper)
        case 203: try decoder.decodeSingularMessageField(value: &_storage._optionalInt64Wrapper)
        case 204: try decoder.decodeSingularMessageField(value: &_storage._optionalUint32Wrapper)
        case 205: try decoder.decodeSingularMessageField(value: &_storage._optionalUint64Wrapper)
        case 206: try decoder.decodeSingularMessageField(value: &_storage._optionalFloatWrapper)
        case 207: try decoder.decodeSingularMessageField(value: &_storage._optionalDoubleWrapper)
        case 208: try decoder.decodeSingularMessageField(value: &_storage._optionalStringWrapper)
        case 209: try decoder.decodeSingularMessageField(value: &_storage._optionalBytesWrapper)
        case 211: try decoder.decodeRepeatedMessageField(value: &_storage._repeatedBoolWrapper)
        case 212: try decoder.decodeRepeatedMessageField(value: &_storage._repeatedInt32Wrapper)
        case 213: try decoder.decodeRepeatedMessageField(value: &_storage._repeatedInt64Wrapper)
        case 214: try decoder.decodeRepeatedMessageField(value: &_storage._repeatedUint32Wrapper)
        case 215: try decoder.decodeRepeatedMessageField(value: &_storage._repeatedUint64Wrapper)
        case 216: try decoder.decodeRepeatedMessageField(value: &_storage._repeatedFloatWrapper)
        case 217: try decoder.decodeRepeatedMessageField(value: &_storage._repeatedDoubleWrapper)
        case 218: try decoder.decodeRepeatedMessageField(value: &_storage._repeatedStringWrapper)
        case 219: try decoder.decodeRepeatedMessageField(value: &_storage._repeatedBytesWrapper)
        case 301: try decoder.decodeSingularMessageField(value: &_storage._optionalDuration)
        case 302: try decoder.decodeSingularMessageField(value: &_storage._optionalTimestamp)
        case 303: try decoder.decodeSingularMessageField(value: &_storage._optionalFieldMask)
        case 304: try decoder.decodeSingularMessageField(value: &_storage._optionalStruct)
        case 305: try decoder.decodeSingularMessageField(value: &_storage._optionalAny)
        case 306: try decoder.decodeSingularMessageField(value: &_storage._optionalValue)
        case 311: try decoder.decodeRepeatedMessageField(value: &_storage._repeatedDuration)
        case 312: try decoder.decodeRepeatedMessageField(value: &_storage._repeatedTimestamp)
        case 313: try decoder.decodeRepeatedMessageField(value: &_storage._repeatedFieldmask)
        case 315: try decoder.decodeRepeatedMessageField(value: &_storage._repeatedAny)
        case 316: try decoder.decodeRepeatedMessageField(value: &_storage._repeatedValue)
        case 317: try decoder.decodeRepeatedMessageField(value: &_storage._repeatedListValue)
        case 324: try decoder.decodeRepeatedMessageField(value: &_storage._repeatedStruct)
        case 401: try decoder.decodeSingularInt32Field(value: &_storage._fieldname1)
        case 402: try decoder.decodeSingularInt32Field(value: &_storage._fieldName2)
        case 403: try decoder.decodeSingularInt32Field(value: &_storage._fieldName3)
        case 404: try decoder.decodeSingularInt32Field(value: &_storage._field_Name4_)
        case 405: try decoder.decodeSingularInt32Field(value: &_storage._field0Name5)
        case 406: try decoder.decodeSingularInt32Field(value: &_storage._field0Name6)
        case 407: try decoder.decodeSingularInt32Field(value: &_storage._fieldName7)
        case 408: try decoder.decodeSingularInt32Field(value: &_storage._fieldName8)
        case 409: try decoder.decodeSingularInt32Field(value: &_storage._fieldName9)
        case 410: try decoder.decodeSingularInt32Field(value: &_storage._fieldName10)
        case 411: try decoder.decodeSingularInt32Field(value: &_storage._fieldName11)
        case 412: try decoder.decodeSingularInt32Field(value: &_storage._fieldName12)
        case 413: try decoder.decodeSingularInt32Field(value: &_storage.__FieldName13)
        case 414: try decoder.decodeSingularInt32Field(value: &_storage.__FieldName14)
        case 415: try decoder.decodeSingularInt32Field(value: &_storage._field_Name15)
        case 416: try decoder.decodeSingularInt32Field(value: &_storage._field_Name16)
        case 417: try decoder.decodeSingularInt32Field(value: &_storage._fieldName17__)
        case 418: try decoder.decodeSingularInt32Field(value: &_storage._fieldName18__)
        default: break
        }
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if _storage._optionalInt32 != 0 {
        try visitor.visitSingularInt32Field(value: _storage._optionalInt32, fieldNumber: 1)
      }
      if _storage._optionalInt64 != 0 {
        try visitor.visitSingularInt64Field(value: _storage._optionalInt64, fieldNumber: 2)
      }
      if _storage._optionalUint32 != 0 {
        try visitor.visitSingularUInt32Field(value: _storage._optionalUint32, fieldNumber: 3)
      }
      if _storage._optionalUint64 != 0 {
        try visitor.visitSingularUInt64Field(value: _storage._optionalUint64, fieldNumber: 4)
      }
      if _storage._optionalSint32 != 0 {
        try visitor.visitSingularSInt32Field(value: _storage._optionalSint32, fieldNumber: 5)
      }
      if _storage._optionalSint64 != 0 {
        try visitor.visitSingularSInt64Field(value: _storage._optionalSint64, fieldNumber: 6)
      }
      if _storage._optionalFixed32 != 0 {
        try visitor.visitSingularFixed32Field(value: _storage._optionalFixed32, fieldNumber: 7)
      }
      if _storage._optionalFixed64 != 0 {
        try visitor.visitSingularFixed64Field(value: _storage._optionalFixed64, fieldNumber: 8)
      }
      if _storage._optionalSfixed32 != 0 {
        try visitor.visitSingularSFixed32Field(value: _storage._optionalSfixed32, fieldNumber: 9)
      }
      if _storage._optionalSfixed64 != 0 {
        try visitor.visitSingularSFixed64Field(value: _storage._optionalSfixed64, fieldNumber: 10)
      }
      if _storage._optionalFloat != 0 {
        try visitor.visitSingularFloatField(value: _storage._optionalFloat, fieldNumber: 11)
      }
      if _storage._optionalDouble != 0 {
        try visitor.visitSingularDoubleField(value: _storage._optionalDouble, fieldNumber: 12)
      }
      if _storage._optionalBool != false {
        try visitor.visitSingularBoolField(value: _storage._optionalBool, fieldNumber: 13)
      }
      if !_storage._optionalString.isEmpty {
        try visitor.visitSingularStringField(value: _storage._optionalString, fieldNumber: 14)
      }
      if !_storage._optionalBytes.isEmpty {
        try visitor.visitSingularBytesField(value: _storage._optionalBytes, fieldNumber: 15)
      }
      if let v = _storage._optionalNestedMessage {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 18)
      }
      if let v = _storage._optionalForeignMessage {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 19)
      }
      if _storage._optionalNestedEnum != .foo {
        try visitor.visitSingularEnumField(value: _storage._optionalNestedEnum, fieldNumber: 21)
      }
      if _storage._optionalForeignEnum != .foreignFoo {
        try visitor.visitSingularEnumField(value: _storage._optionalForeignEnum, fieldNumber: 22)
      }
      if _storage._optionalAliasedEnum != .aliasFoo {
        try visitor.visitSingularEnumField(value: _storage._optionalAliasedEnum, fieldNumber: 23)
      }
      if !_storage._optionalStringPiece.isEmpty {
        try visitor.visitSingularStringField(value: _storage._optionalStringPiece, fieldNumber: 24)
      }
      if !_storage._optionalCord.isEmpty {
        try visitor.visitSingularStringField(value: _storage._optionalCord, fieldNumber: 25)
      }
      if let v = _storage._recursiveMessage {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 27)
      }
      if !_storage._repeatedInt32.isEmpty {
        try visitor.visitPackedInt32Field(value: _storage._repeatedInt32, fieldNumber: 31)
      }
      if !_storage._repeatedInt64.isEmpty {
        try visitor.visitPackedInt64Field(value: _storage._repeatedInt64, fieldNumber: 32)
      }
      if !_storage._repeatedUint32.isEmpty {
        try visitor.visitPackedUInt32Field(value: _storage._repeatedUint32, fieldNumber: 33)
      }
      if !_storage._repeatedUint64.isEmpty {
        try visitor.visitPackedUInt64Field(value: _storage._repeatedUint64, fieldNumber: 34)
      }
      if !_storage._repeatedSint32.isEmpty {
        try visitor.visitPackedSInt32Field(value: _storage._repeatedSint32, fieldNumber: 35)
      }
      if !_storage._repeatedSint64.isEmpty {
        try visitor.visitPackedSInt64Field(value: _storage._repeatedSint64, fieldNumber: 36)
      }
      if !_storage._repeatedFixed32.isEmpty {
        try visitor.visitPackedFixed32Field(value: _storage._repeatedFixed32, fieldNumber: 37)
      }
      if !_storage._repeatedFixed64.isEmpty {
        try visitor.visitPackedFixed64Field(value: _storage._repeatedFixed64, fieldNumber: 38)
      }
      if !_storage._repeatedSfixed32.isEmpty {
        try visitor.visitPackedSFixed32Field(value: _storage._repeatedSfixed32, fieldNumber: 39)
      }
      if !_storage._repeatedSfixed64.isEmpty {
        try visitor.visitPackedSFixed64Field(value: _storage._repeatedSfixed64, fieldNumber: 40)
      }
      if !_storage._repeatedFloat.isEmpty {
        try visitor.visitPackedFloatField(value: _storage._repeatedFloat, fieldNumber: 41)
      }
      if !_storage._repeatedDouble.isEmpty {
        try visitor.visitPackedDoubleField(value: _storage._repeatedDouble, fieldNumber: 42)
      }
      if !_storage._repeatedBool.isEmpty {
        try visitor.visitPackedBoolField(value: _storage._repeatedBool, fieldNumber: 43)
      }
      if !_storage._repeatedString.isEmpty {
        try visitor.visitRepeatedStringField(value: _storage._repeatedString, fieldNumber: 44)
      }
      if !_storage._repeatedBytes.isEmpty {
        try visitor.visitRepeatedBytesField(value: _storage._repeatedBytes, fieldNumber: 45)
      }
      if !_storage._repeatedNestedMessage.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedNestedMessage, fieldNumber: 48)
      }
      if !_storage._repeatedForeignMessage.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedForeignMessage, fieldNumber: 49)
      }
      if !_storage._repeatedNestedEnum.isEmpty {
        try visitor.visitPackedEnumField(value: _storage._repeatedNestedEnum, fieldNumber: 51)
      }
      if !_storage._repeatedForeignEnum.isEmpty {
        try visitor.visitPackedEnumField(value: _storage._repeatedForeignEnum, fieldNumber: 52)
      }
      if !_storage._repeatedStringPiece.isEmpty {
        try visitor.visitRepeatedStringField(value: _storage._repeatedStringPiece, fieldNumber: 54)
      }
      if !_storage._repeatedCord.isEmpty {
        try visitor.visitRepeatedStringField(value: _storage._repeatedCord, fieldNumber: 55)
      }
      if !_storage._mapInt32Int32.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.ProtobufInt32>.self, value: _storage._mapInt32Int32, fieldNumber: 56)
      }
      if !_storage._mapInt64Int64.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufInt64,SwiftProtobuf.ProtobufInt64>.self, value: _storage._mapInt64Int64, fieldNumber: 57)
      }
      if !_storage._mapUint32Uint32.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufUInt32,SwiftProtobuf.ProtobufUInt32>.self, value: _storage._mapUint32Uint32, fieldNumber: 58)
      }
      if !_storage._mapUint64Uint64.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufUInt64,SwiftProtobuf.ProtobufUInt64>.self, value: _storage._mapUint64Uint64, fieldNumber: 59)
      }
      if !_storage._mapSint32Sint32.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufSInt32,SwiftProtobuf.ProtobufSInt32>.self, value: _storage._mapSint32Sint32, fieldNumber: 60)
      }
      if !_storage._mapSint64Sint64.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufSInt64,SwiftProtobuf.ProtobufSInt64>.self, value: _storage._mapSint64Sint64, fieldNumber: 61)
      }
      if !_storage._mapFixed32Fixed32.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufFixed32,SwiftProtobuf.ProtobufFixed32>.self, value: _storage._mapFixed32Fixed32, fieldNumber: 62)
      }
      if !_storage._mapFixed64Fixed64.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufFixed64,SwiftProtobuf.ProtobufFixed64>.self, value: _storage._mapFixed64Fixed64, fieldNumber: 63)
      }
      if !_storage._mapSfixed32Sfixed32.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufSFixed32,SwiftProtobuf.ProtobufSFixed32>.self, value: _storage._mapSfixed32Sfixed32, fieldNumber: 64)
      }
      if !_storage._mapSfixed64Sfixed64.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufSFixed64,SwiftProtobuf.ProtobufSFixed64>.self, value: _storage._mapSfixed64Sfixed64, fieldNumber: 65)
      }
      if !_storage._mapInt32Float.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.ProtobufFloat>.self, value: _storage._mapInt32Float, fieldNumber: 66)
      }
      if !_storage._mapInt32Double.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufInt32,SwiftProtobuf.ProtobufDouble>.self, value: _storage._mapInt32Double, fieldNumber: 67)
      }
      if !_storage._mapBoolBool.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufBool,SwiftProtobuf.ProtobufBool>.self, value: _storage._mapBoolBool, fieldNumber: 68)
      }
      if !_storage._mapStringString.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufString,SwiftProtobuf.ProtobufString>.self, value: _storage._mapStringString, fieldNumber: 69)
      }
      if !_storage._mapStringBytes.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMap<SwiftProtobuf.ProtobufString,SwiftProtobuf.ProtobufBytes>.self, value: _storage._mapStringBytes, fieldNumber: 70)
      }
      if !_storage._mapStringNestedMessage.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufString,ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedMessage>.self, value: _storage._mapStringNestedMessage, fieldNumber: 71)
      }
      if !_storage._mapStringForeignMessage.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMessageMap<SwiftProtobuf.ProtobufString,ProtobufTestMessages_Proto3_ForeignMessage>.self, value: _storage._mapStringForeignMessage, fieldNumber: 72)
      }
      if !_storage._mapStringNestedEnum.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufEnumMap<SwiftProtobuf.ProtobufString,ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedEnum>.self, value: _storage._mapStringNestedEnum, fieldNumber: 73)
      }
      if !_storage._mapStringForeignEnum.isEmpty {
        try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufEnumMap<SwiftProtobuf.ProtobufString,ProtobufTestMessages_Proto3_ForeignEnum>.self, value: _storage._mapStringForeignEnum, fieldNumber: 74)
      }
      switch _storage._oneofField {
      case .oneofUint32(let v)?:
        try visitor.visitSingularUInt32Field(value: v, fieldNumber: 111)
      case .oneofNestedMessage(let v)?:
        try visitor.visitSingularMessageField(value: v, fieldNumber: 112)
      case .oneofString(let v)?:
        try visitor.visitSingularStringField(value: v, fieldNumber: 113)
      case .oneofBytes(let v)?:
        try visitor.visitSingularBytesField(value: v, fieldNumber: 114)
      case .oneofBool(let v)?:
        try visitor.visitSingularBoolField(value: v, fieldNumber: 115)
      case .oneofUint64(let v)?:
        try visitor.visitSingularUInt64Field(value: v, fieldNumber: 116)
      case .oneofFloat(let v)?:
        try visitor.visitSingularFloatField(value: v, fieldNumber: 117)
      case .oneofDouble(let v)?:
        try visitor.visitSingularDoubleField(value: v, fieldNumber: 118)
      case .oneofEnum(let v)?:
        try visitor.visitSingularEnumField(value: v, fieldNumber: 119)
      case nil: break
      }
      if let v = _storage._optionalBoolWrapper {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 201)
      }
      if let v = _storage._optionalInt32Wrapper {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 202)
      }
      if let v = _storage._optionalInt64Wrapper {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 203)
      }
      if let v = _storage._optionalUint32Wrapper {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 204)
      }
      if let v = _storage._optionalUint64Wrapper {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 205)
      }
      if let v = _storage._optionalFloatWrapper {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 206)
      }
      if let v = _storage._optionalDoubleWrapper {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 207)
      }
      if let v = _storage._optionalStringWrapper {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 208)
      }
      if let v = _storage._optionalBytesWrapper {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 209)
      }
      if !_storage._repeatedBoolWrapper.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedBoolWrapper, fieldNumber: 211)
      }
      if !_storage._repeatedInt32Wrapper.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedInt32Wrapper, fieldNumber: 212)
      }
      if !_storage._repeatedInt64Wrapper.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedInt64Wrapper, fieldNumber: 213)
      }
      if !_storage._repeatedUint32Wrapper.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedUint32Wrapper, fieldNumber: 214)
      }
      if !_storage._repeatedUint64Wrapper.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedUint64Wrapper, fieldNumber: 215)
      }
      if !_storage._repeatedFloatWrapper.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedFloatWrapper, fieldNumber: 216)
      }
      if !_storage._repeatedDoubleWrapper.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedDoubleWrapper, fieldNumber: 217)
      }
      if !_storage._repeatedStringWrapper.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedStringWrapper, fieldNumber: 218)
      }
      if !_storage._repeatedBytesWrapper.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedBytesWrapper, fieldNumber: 219)
      }
      if let v = _storage._optionalDuration {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 301)
      }
      if let v = _storage._optionalTimestamp {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 302)
      }
      if let v = _storage._optionalFieldMask {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 303)
      }
      if let v = _storage._optionalStruct {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 304)
      }
      if let v = _storage._optionalAny {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 305)
      }
      if let v = _storage._optionalValue {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 306)
      }
      if !_storage._repeatedDuration.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedDuration, fieldNumber: 311)
      }
      if !_storage._repeatedTimestamp.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedTimestamp, fieldNumber: 312)
      }
      if !_storage._repeatedFieldmask.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedFieldmask, fieldNumber: 313)
      }
      if !_storage._repeatedAny.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedAny, fieldNumber: 315)
      }
      if !_storage._repeatedValue.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedValue, fieldNumber: 316)
      }
      if !_storage._repeatedListValue.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedListValue, fieldNumber: 317)
      }
      if !_storage._repeatedStruct.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedStruct, fieldNumber: 324)
      }
      if _storage._fieldname1 != 0 {
        try visitor.visitSingularInt32Field(value: _storage._fieldname1, fieldNumber: 401)
      }
      if _storage._fieldName2 != 0 {
        try visitor.visitSingularInt32Field(value: _storage._fieldName2, fieldNumber: 402)
      }
      if _storage._fieldName3 != 0 {
        try visitor.visitSingularInt32Field(value: _storage._fieldName3, fieldNumber: 403)
      }
      if _storage._field_Name4_ != 0 {
        try visitor.visitSingularInt32Field(value: _storage._field_Name4_, fieldNumber: 404)
      }
      if _storage._field0Name5 != 0 {
        try visitor.visitSingularInt32Field(value: _storage._field0Name5, fieldNumber: 405)
      }
      if _storage._field0Name6 != 0 {
        try visitor.visitSingularInt32Field(value: _storage._field0Name6, fieldNumber: 406)
      }
      if _storage._fieldName7 != 0 {
        try visitor.visitSingularInt32Field(value: _storage._fieldName7, fieldNumber: 407)
      }
      if _storage._fieldName8 != 0 {
        try visitor.visitSingularInt32Field(value: _storage._fieldName8, fieldNumber: 408)
      }
      if _storage._fieldName9 != 0 {
        try visitor.visitSingularInt32Field(value: _storage._fieldName9, fieldNumber: 409)
      }
      if _storage._fieldName10 != 0 {
        try visitor.visitSingularInt32Field(value: _storage._fieldName10, fieldNumber: 410)
      }
      if _storage._fieldName11 != 0 {
        try visitor.visitSingularInt32Field(value: _storage._fieldName11, fieldNumber: 411)
      }
      if _storage._fieldName12 != 0 {
        try visitor.visitSingularInt32Field(value: _storage._fieldName12, fieldNumber: 412)
      }
      if _storage.__FieldName13 != 0 {
        try visitor.visitSingularInt32Field(value: _storage.__FieldName13, fieldNumber: 413)
      }
      if _storage.__FieldName14 != 0 {
        try visitor.visitSingularInt32Field(value: _storage.__FieldName14, fieldNumber: 414)
      }
      if _storage._field_Name15 != 0 {
        try visitor.visitSingularInt32Field(value: _storage._field_Name15, fieldNumber: 415)
      }
      if _storage._field_Name16 != 0 {
        try visitor.visitSingularInt32Field(value: _storage._field_Name16, fieldNumber: 416)
      }
      if _storage._fieldName17__ != 0 {
        try visitor.visitSingularInt32Field(value: _storage._fieldName17__, fieldNumber: 417)
      }
      if _storage._fieldName18__ != 0 {
        try visitor.visitSingularInt32Field(value: _storage._fieldName18__, fieldNumber: 418)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: ProtobufTestMessages_Proto3_TestAllTypesProto3, rhs: ProtobufTestMessages_Proto3_TestAllTypesProto3) -> Bool {
    if lhs._storage !== rhs._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((lhs._storage, rhs._storage)) { (_args: (_StorageClass, _StorageClass)) in
        let _storage = _args.0
        let rhs_storage = _args.1
        if _storage._optionalInt32 != rhs_storage._optionalInt32 {return false}
        if _storage._optionalInt64 != rhs_storage._optionalInt64 {return false}
        if _storage._optionalUint32 != rhs_storage._optionalUint32 {return false}
        if _storage._optionalUint64 != rhs_storage._optionalUint64 {return false}
        if _storage._optionalSint32 != rhs_storage._optionalSint32 {return false}
        if _storage._optionalSint64 != rhs_storage._optionalSint64 {return false}
        if _storage._optionalFixed32 != rhs_storage._optionalFixed32 {return false}
        if _storage._optionalFixed64 != rhs_storage._optionalFixed64 {return false}
        if _storage._optionalSfixed32 != rhs_storage._optionalSfixed32 {return false}
        if _storage._optionalSfixed64 != rhs_storage._optionalSfixed64 {return false}
        if _storage._optionalFloat != rhs_storage._optionalFloat {return false}
        if _storage._optionalDouble != rhs_storage._optionalDouble {return false}
        if _storage._optionalBool != rhs_storage._optionalBool {return false}
        if _storage._optionalString != rhs_storage._optionalString {return false}
        if _storage._optionalBytes != rhs_storage._optionalBytes {return false}
        if _storage._optionalNestedMessage != rhs_storage._optionalNestedMessage {return false}
        if _storage._optionalForeignMessage != rhs_storage._optionalForeignMessage {return false}
        if _storage._optionalNestedEnum != rhs_storage._optionalNestedEnum {return false}
        if _storage._optionalForeignEnum != rhs_storage._optionalForeignEnum {return false}
        if _storage._optionalAliasedEnum != rhs_storage._optionalAliasedEnum {return false}
        if _storage._optionalStringPiece != rhs_storage._optionalStringPiece {return false}
        if _storage._optionalCord != rhs_storage._optionalCord {return false}
        if _storage._recursiveMessage != rhs_storage._recursiveMessage {return false}
        if _storage._repeatedInt32 != rhs_storage._repeatedInt32 {return false}
        if _storage._repeatedInt64 != rhs_storage._repeatedInt64 {return false}
        if _storage._repeatedUint32 != rhs_storage._repeatedUint32 {return false}
        if _storage._repeatedUint64 != rhs_storage._repeatedUint64 {return false}
        if _storage._repeatedSint32 != rhs_storage._repeatedSint32 {return false}
        if _storage._repeatedSint64 != rhs_storage._repeatedSint64 {return false}
        if _storage._repeatedFixed32 != rhs_storage._repeatedFixed32 {return false}
        if _storage._repeatedFixed64 != rhs_storage._repeatedFixed64 {return false}
        if _storage._repeatedSfixed32 != rhs_storage._repeatedSfixed32 {return false}
        if _storage._repeatedSfixed64 != rhs_storage._repeatedSfixed64 {return false}
        if _storage._repeatedFloat != rhs_storage._repeatedFloat {return false}
        if _storage._repeatedDouble != rhs_storage._repeatedDouble {return false}
        if _storage._repeatedBool != rhs_storage._repeatedBool {return false}
        if _storage._repeatedString != rhs_storage._repeatedString {return false}
        if _storage._repeatedBytes != rhs_storage._repeatedBytes {return false}
        if _storage._repeatedNestedMessage != rhs_storage._repeatedNestedMessage {return false}
        if _storage._repeatedForeignMessage != rhs_storage._repeatedForeignMessage {return false}
        if _storage._repeatedNestedEnum != rhs_storage._repeatedNestedEnum {return false}
        if _storage._repeatedForeignEnum != rhs_storage._repeatedForeignEnum {return false}
        if _storage._repeatedStringPiece != rhs_storage._repeatedStringPiece {return false}
        if _storage._repeatedCord != rhs_storage._repeatedCord {return false}
        if _storage._mapInt32Int32 != rhs_storage._mapInt32Int32 {return false}
        if _storage._mapInt64Int64 != rhs_storage._mapInt64Int64 {return false}
        if _storage._mapUint32Uint32 != rhs_storage._mapUint32Uint32 {return false}
        if _storage._mapUint64Uint64 != rhs_storage._mapUint64Uint64 {return false}
        if _storage._mapSint32Sint32 != rhs_storage._mapSint32Sint32 {return false}
        if _storage._mapSint64Sint64 != rhs_storage._mapSint64Sint64 {return false}
        if _storage._mapFixed32Fixed32 != rhs_storage._mapFixed32Fixed32 {return false}
        if _storage._mapFixed64Fixed64 != rhs_storage._mapFixed64Fixed64 {return false}
        if _storage._mapSfixed32Sfixed32 != rhs_storage._mapSfixed32Sfixed32 {return false}
        if _storage._mapSfixed64Sfixed64 != rhs_storage._mapSfixed64Sfixed64 {return false}
        if _storage._mapInt32Float != rhs_storage._mapInt32Float {return false}
        if _storage._mapInt32Double != rhs_storage._mapInt32Double {return false}
        if _storage._mapBoolBool != rhs_storage._mapBoolBool {return false}
        if _storage._mapStringString != rhs_storage._mapStringString {return false}
        if _storage._mapStringBytes != rhs_storage._mapStringBytes {return false}
        if _storage._mapStringNestedMessage != rhs_storage._mapStringNestedMessage {return false}
        if _storage._mapStringForeignMessage != rhs_storage._mapStringForeignMessage {return false}
        if _storage._mapStringNestedEnum != rhs_storage._mapStringNestedEnum {return false}
        if _storage._mapStringForeignEnum != rhs_storage._mapStringForeignEnum {return false}
        if _storage._oneofField != rhs_storage._oneofField {return false}
        if _storage._optionalBoolWrapper != rhs_storage._optionalBoolWrapper {return false}
        if _storage._optionalInt32Wrapper != rhs_storage._optionalInt32Wrapper {return false}
        if _storage._optionalInt64Wrapper != rhs_storage._optionalInt64Wrapper {return false}
        if _storage._optionalUint32Wrapper != rhs_storage._optionalUint32Wrapper {return false}
        if _storage._optionalUint64Wrapper != rhs_storage._optionalUint64Wrapper {return false}
        if _storage._optionalFloatWrapper != rhs_storage._optionalFloatWrapper {return false}
        if _storage._optionalDoubleWrapper != rhs_storage._optionalDoubleWrapper {return false}
        if _storage._optionalStringWrapper != rhs_storage._optionalStringWrapper {return false}
        if _storage._optionalBytesWrapper != rhs_storage._optionalBytesWrapper {return false}
        if _storage._repeatedBoolWrapper != rhs_storage._repeatedBoolWrapper {return false}
        if _storage._repeatedInt32Wrapper != rhs_storage._repeatedInt32Wrapper {return false}
        if _storage._repeatedInt64Wrapper != rhs_storage._repeatedInt64Wrapper {return false}
        if _storage._repeatedUint32Wrapper != rhs_storage._repeatedUint32Wrapper {return false}
        if _storage._repeatedUint64Wrapper != rhs_storage._repeatedUint64Wrapper {return false}
        if _storage._repeatedFloatWrapper != rhs_storage._repeatedFloatWrapper {return false}
        if _storage._repeatedDoubleWrapper != rhs_storage._repeatedDoubleWrapper {return false}
        if _storage._repeatedStringWrapper != rhs_storage._repeatedStringWrapper {return false}
        if _storage._repeatedBytesWrapper != rhs_storage._repeatedBytesWrapper {return false}
        if _storage._optionalDuration != rhs_storage._optionalDuration {return false}
        if _storage._optionalTimestamp != rhs_storage._optionalTimestamp {return false}
        if _storage._optionalFieldMask != rhs_storage._optionalFieldMask {return false}
        if _storage._optionalStruct != rhs_storage._optionalStruct {return false}
        if _storage._optionalAny != rhs_storage._optionalAny {return false}
        if _storage._optionalValue != rhs_storage._optionalValue {return false}
        if _storage._repeatedDuration != rhs_storage._repeatedDuration {return false}
        if _storage._repeatedTimestamp != rhs_storage._repeatedTimestamp {return false}
        if _storage._repeatedFieldmask != rhs_storage._repeatedFieldmask {return false}
        if _storage._repeatedStruct != rhs_storage._repeatedStruct {return false}
        if _storage._repeatedAny != rhs_storage._repeatedAny {return false}
        if _storage._repeatedValue != rhs_storage._repeatedValue {return false}
        if _storage._repeatedListValue != rhs_storage._repeatedListValue {return false}
        if _storage._fieldname1 != rhs_storage._fieldname1 {return false}
        if _storage._fieldName2 != rhs_storage._fieldName2 {return false}
        if _storage._fieldName3 != rhs_storage._fieldName3 {return false}
        if _storage._field_Name4_ != rhs_storage._field_Name4_ {return false}
        if _storage._field0Name5 != rhs_storage._field0Name5 {return false}
        if _storage._field0Name6 != rhs_storage._field0Name6 {return false}
        if _storage._fieldName7 != rhs_storage._fieldName7 {return false}
        if _storage._fieldName8 != rhs_storage._fieldName8 {return false}
        if _storage._fieldName9 != rhs_storage._fieldName9 {return false}
        if _storage._fieldName10 != rhs_storage._fieldName10 {return false}
        if _storage._fieldName11 != rhs_storage._fieldName11 {return false}
        if _storage._fieldName12 != rhs_storage._fieldName12 {return false}
        if _storage.__FieldName13 != rhs_storage.__FieldName13 {return false}
        if _storage.__FieldName14 != rhs_storage.__FieldName14 {return false}
        if _storage._field_Name15 != rhs_storage._field_Name15 {return false}
        if _storage._field_Name16 != rhs_storage._field_Name16 {return false}
        if _storage._fieldName17__ != rhs_storage._fieldName17__ {return false}
        if _storage._fieldName18__ != rhs_storage._fieldName18__ {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedEnum: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    -1: .same(proto: "NEG"),
    0: .same(proto: "FOO"),
    1: .same(proto: "BAR"),
    2: .same(proto: "BAZ"),
  ]
}

extension ProtobufTestMessages_Proto3_TestAllTypesProto3.AliasedEnum: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    0: .same(proto: "ALIAS_FOO"),
    1: .same(proto: "ALIAS_BAR"),
    2: .aliased(proto: "ALIAS_BAZ", aliases: ["QUX", "qux", "bAz"]),
  ]
}

extension ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = ProtobufTestMessages_Proto3_TestAllTypesProto3.protoMessageName + ".NestedMessage"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "a"),
    2: .same(proto: "corecursive"),
  ]

  fileprivate class _StorageClass {
    var _a: Int32 = 0
    var _corecursive: ProtobufTestMessages_Proto3_TestAllTypesProto3? = nil

    static let defaultInstance = _StorageClass()

    private init() {}

    init(copying source: _StorageClass) {
      _a = source._a
      _corecursive = source._corecursive
    }
  }

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

  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.decodeSingularInt32Field(value: &_storage._a)
        case 2: try decoder.decodeSingularMessageField(value: &_storage._corecursive)
        default: break
        }
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if _storage._a != 0 {
        try visitor.visitSingularInt32Field(value: _storage._a, fieldNumber: 1)
      }
      if let v = _storage._corecursive {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 2)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedMessage, rhs: ProtobufTestMessages_Proto3_TestAllTypesProto3.NestedMessage) -> Bool {
    if lhs._storage !== rhs._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((lhs._storage, rhs._storage)) { (_args: (_StorageClass, _StorageClass)) in
        let _storage = _args.0
        let rhs_storage = _args.1
        if _storage._a != rhs_storage._a {return false}
        if _storage._corecursive != rhs_storage._corecursive {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension ProtobufTestMessages_Proto3_ForeignMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".ForeignMessage"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "c"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularInt32Field(value: &self.c)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if self.c != 0 {
      try visitor.visitSingularInt32Field(value: self.c, fieldNumber: 1)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: ProtobufTestMessages_Proto3_ForeignMessage, rhs: ProtobufTestMessages_Proto3_ForeignMessage) -> Bool {
    if lhs.c != rhs.c {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}
