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

import Foundation
import SwiftProtobuf

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

struct Mavsdk_Rpc_Mission_UploadMissionRequest {
  // 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.

  /// List of mission items
  var missionItems: [Mavsdk_Rpc_Mission_MissionItem] = []

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct Mavsdk_Rpc_Mission_UploadMissionResponse {
  // 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 missionResult: Mavsdk_Rpc_Mission_MissionResult {
    get {return _storage._missionResult ?? Mavsdk_Rpc_Mission_MissionResult()}
    set {_uniqueStorage()._missionResult = newValue}
  }
  /// Returns true if `missionResult` has been explicitly set.
  var hasMissionResult: Bool {return _storage._missionResult != nil}
  /// Clears the value of `missionResult`. Subsequent reads from it will return its default value.
  mutating func clearMissionResult() {_uniqueStorage()._missionResult = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  fileprivate var _storage = _StorageClass.defaultInstance
}

struct Mavsdk_Rpc_Mission_CancelMissionUploadRequest {
  // 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 unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct Mavsdk_Rpc_Mission_CancelMissionUploadResponse {
  // 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 unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct Mavsdk_Rpc_Mission_DownloadMissionRequest {
  // 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 unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct Mavsdk_Rpc_Mission_DownloadMissionResponse {
  // 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 missionResult: Mavsdk_Rpc_Mission_MissionResult {
    get {return _storage._missionResult ?? Mavsdk_Rpc_Mission_MissionResult()}
    set {_uniqueStorage()._missionResult = newValue}
  }
  /// Returns true if `missionResult` has been explicitly set.
  var hasMissionResult: Bool {return _storage._missionResult != nil}
  /// Clears the value of `missionResult`. Subsequent reads from it will return its default value.
  mutating func clearMissionResult() {_uniqueStorage()._missionResult = nil}

  /// List of downloaded mission items
  var missionItems: [Mavsdk_Rpc_Mission_MissionItem] {
    get {return _storage._missionItems}
    set {_uniqueStorage()._missionItems = newValue}
  }

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  fileprivate var _storage = _StorageClass.defaultInstance
}

struct Mavsdk_Rpc_Mission_CancelMissionDownloadRequest {
  // 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 unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct Mavsdk_Rpc_Mission_CancelMissionDownloadResponse {
  // 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 unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct Mavsdk_Rpc_Mission_StartMissionRequest {
  // 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 unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct Mavsdk_Rpc_Mission_StartMissionResponse {
  // 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 missionResult: Mavsdk_Rpc_Mission_MissionResult {
    get {return _storage._missionResult ?? Mavsdk_Rpc_Mission_MissionResult()}
    set {_uniqueStorage()._missionResult = newValue}
  }
  /// Returns true if `missionResult` has been explicitly set.
  var hasMissionResult: Bool {return _storage._missionResult != nil}
  /// Clears the value of `missionResult`. Subsequent reads from it will return its default value.
  mutating func clearMissionResult() {_uniqueStorage()._missionResult = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  fileprivate var _storage = _StorageClass.defaultInstance
}

struct Mavsdk_Rpc_Mission_PauseMissionRequest {
  // 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 unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct Mavsdk_Rpc_Mission_PauseMissionResponse {
  // 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 missionResult: Mavsdk_Rpc_Mission_MissionResult {
    get {return _storage._missionResult ?? Mavsdk_Rpc_Mission_MissionResult()}
    set {_uniqueStorage()._missionResult = newValue}
  }
  /// Returns true if `missionResult` has been explicitly set.
  var hasMissionResult: Bool {return _storage._missionResult != nil}
  /// Clears the value of `missionResult`. Subsequent reads from it will return its default value.
  mutating func clearMissionResult() {_uniqueStorage()._missionResult = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  fileprivate var _storage = _StorageClass.defaultInstance
}

struct Mavsdk_Rpc_Mission_ClearMissionRequest {
  // 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 unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct Mavsdk_Rpc_Mission_ClearMissionResponse {
  // 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 missionResult: Mavsdk_Rpc_Mission_MissionResult {
    get {return _storage._missionResult ?? Mavsdk_Rpc_Mission_MissionResult()}
    set {_uniqueStorage()._missionResult = newValue}
  }
  /// Returns true if `missionResult` has been explicitly set.
  var hasMissionResult: Bool {return _storage._missionResult != nil}
  /// Clears the value of `missionResult`. Subsequent reads from it will return its default value.
  mutating func clearMissionResult() {_uniqueStorage()._missionResult = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  fileprivate var _storage = _StorageClass.defaultInstance
}

struct Mavsdk_Rpc_Mission_SetCurrentMissionItemIndexRequest {
  // 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.

  /// Index of the mission item to be set as the next one (0-based)
  var index: Int32 = 0

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct Mavsdk_Rpc_Mission_SetCurrentMissionItemIndexResponse {
  // 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 missionResult: Mavsdk_Rpc_Mission_MissionResult {
    get {return _storage._missionResult ?? Mavsdk_Rpc_Mission_MissionResult()}
    set {_uniqueStorage()._missionResult = newValue}
  }
  /// Returns true if `missionResult` has been explicitly set.
  var hasMissionResult: Bool {return _storage._missionResult != nil}
  /// Clears the value of `missionResult`. Subsequent reads from it will return its default value.
  mutating func clearMissionResult() {_uniqueStorage()._missionResult = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  fileprivate var _storage = _StorageClass.defaultInstance
}

struct Mavsdk_Rpc_Mission_IsMissionFinishedRequest {
  // 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 unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct Mavsdk_Rpc_Mission_IsMissionFinishedResponse {
  // 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.

  /// True if the mission is finished and the last mission item has been reached
  var isFinished: Bool = false

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct Mavsdk_Rpc_Mission_SubscribeMissionProgressRequest {
  // 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 unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct Mavsdk_Rpc_Mission_MissionProgressResponse {
  // 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.

  /// Mission progress
  var missionProgress: Mavsdk_Rpc_Mission_MissionProgress {
    get {return _storage._missionProgress ?? Mavsdk_Rpc_Mission_MissionProgress()}
    set {_uniqueStorage()._missionProgress = newValue}
  }
  /// Returns true if `missionProgress` has been explicitly set.
  var hasMissionProgress: Bool {return _storage._missionProgress != nil}
  /// Clears the value of `missionProgress`. Subsequent reads from it will return its default value.
  mutating func clearMissionProgress() {_uniqueStorage()._missionProgress = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  fileprivate var _storage = _StorageClass.defaultInstance
}

struct Mavsdk_Rpc_Mission_GetReturnToLaunchAfterMissionRequest {
  // 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 unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct Mavsdk_Rpc_Mission_GetReturnToLaunchAfterMissionResponse {
  // 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.

  /// If true, trigger an RTL at the end of the mission
  var enable: Bool = false

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct Mavsdk_Rpc_Mission_SetReturnToLaunchAfterMissionRequest {
  // 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.

  /// If true, trigger an RTL at the end of the mission
  var enable: Bool = false

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

struct Mavsdk_Rpc_Mission_SetReturnToLaunchAfterMissionResponse {
  // 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 unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

///
/// Type representing a mission item.
///
/// A MissionItem can contain a position and/or actions.
/// Mission items are building blocks to assemble a mission,
/// which can be sent to (or received from) a system.
/// They cannot be used independently.
struct Mavsdk_Rpc_Mission_MissionItem {
  // 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.

  /// Latitude in degrees (range: -90 to +90)
  var latitudeDeg: Double = 0

  /// Longitude in degrees (range: -180 to +180)
  var longitudeDeg: Double = 0

  /// Altitude relative to takeoff altitude in metres
  var relativeAltitudeM: Float = 0

  /// Speed to use after this mission item (in metres/second)
  var speedMS: Float = 0

  /// True will make the drone fly through without stopping, while false will make the drone stop on the waypoint
  var isFlyThrough: Bool = false

  /// Gimbal pitch (in degrees)
  var gimbalPitchDeg: Float = 0

  /// Gimbal yaw (in degrees)
  var gimbalYawDeg: Float = 0

  /// Camera action to trigger at this mission item
  var cameraAction: Mavsdk_Rpc_Mission_MissionItem.CameraAction = .none

  /// Loiter time (in seconds)
  var loiterTimeS: Float = 0

  /// Camera photo interval to use after this mission item (in seconds)
  var cameraPhotoIntervalS: Double = 0

  var unknownFields = SwiftProtobuf.UnknownStorage()

  /// Possible camera actions at a mission item.
  enum CameraAction: SwiftProtobuf.Enum {
    typealias RawValue = Int

    /// No action
    case none // = 0

    /// Take a single photo
    case takePhoto // = 1

    /// Start capturing photos at regular intervals
    case startPhotoInterval // = 2

    /// Stop capturing photos at regular intervals
    case stopPhotoInterval // = 3

    /// Start capturing video
    case startVideo // = 4

    /// Stop capturing video
    case stopVideo // = 5
    case UNRECOGNIZED(Int)

    init() {
      self = .none
    }

    init?(rawValue: Int) {
      switch rawValue {
      case 0: self = .none
      case 1: self = .takePhoto
      case 2: self = .startPhotoInterval
      case 3: self = .stopPhotoInterval
      case 4: self = .startVideo
      case 5: self = .stopVideo
      default: self = .UNRECOGNIZED(rawValue)
      }
    }

    var rawValue: Int {
      switch self {
      case .none: return 0
      case .takePhoto: return 1
      case .startPhotoInterval: return 2
      case .stopPhotoInterval: return 3
      case .startVideo: return 4
      case .stopVideo: return 5
      case .UNRECOGNIZED(let i): return i
      }
    }

  }

  init() {}
}

#if swift(>=4.2)

extension Mavsdk_Rpc_Mission_MissionItem.CameraAction: CaseIterable {
  // The compiler won't synthesize support with the UNRECOGNIZED case.
  static var allCases: [Mavsdk_Rpc_Mission_MissionItem.CameraAction] = [
    .none,
    .takePhoto,
    .startPhotoInterval,
    .stopPhotoInterval,
    .startVideo,
    .stopVideo,
  ]
}

#endif  // swift(>=4.2)

/// Mission progress type.
struct Mavsdk_Rpc_Mission_MissionProgress {
  // 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.

  /// Current mission item index (0-based)
  var currentItemIndex: Int32 = 0

  /// Total number of mission items
  var missionCount: Int32 = 0

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}
}

/// Result type.
struct Mavsdk_Rpc_Mission_MissionResult {
  // 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.

  /// Result enum value
  var result: Mavsdk_Rpc_Mission_MissionResult.Result = .unknown

  /// Human-readable English string describing the result
  var resultStr: String = String()

  var unknownFields = SwiftProtobuf.UnknownStorage()

  /// Possible results returned for action requests.
  enum Result: SwiftProtobuf.Enum {
    typealias RawValue = Int

    /// Unknown error
    case unknown // = 0

    /// Request succeeded
    case success // = 1

    /// Error
    case error // = 2

    /// Too many mission items in the mission
    case tooManyMissionItems // = 3

    /// Vehicle is busy
    case busy // = 4

    /// Request timed out
    case timeout // = 5

    /// Invalid argument
    case invalidArgument // = 6

    /// Mission downloaded from the system is not supported
    case unsupported // = 7

    /// No mission available on the system
    case noMissionAvailable // = 8

    /// Failed to open the QGroundControl plan
    case failedToOpenQgcPlan // = 9

    /// Failed to parse the QGroundControl plan
    case failedToParseQgcPlan // = 10

    /// Unsupported mission command
    case unsupportedMissionCmd // = 11

    /// Mission transfer (upload or download) has been cancelled
    case transferCancelled // = 12
    case UNRECOGNIZED(Int)

    init() {
      self = .unknown
    }

    init?(rawValue: Int) {
      switch rawValue {
      case 0: self = .unknown
      case 1: self = .success
      case 2: self = .error
      case 3: self = .tooManyMissionItems
      case 4: self = .busy
      case 5: self = .timeout
      case 6: self = .invalidArgument
      case 7: self = .unsupported
      case 8: self = .noMissionAvailable
      case 9: self = .failedToOpenQgcPlan
      case 10: self = .failedToParseQgcPlan
      case 11: self = .unsupportedMissionCmd
      case 12: self = .transferCancelled
      default: self = .UNRECOGNIZED(rawValue)
      }
    }

    var rawValue: Int {
      switch self {
      case .unknown: return 0
      case .success: return 1
      case .error: return 2
      case .tooManyMissionItems: return 3
      case .busy: return 4
      case .timeout: return 5
      case .invalidArgument: return 6
      case .unsupported: return 7
      case .noMissionAvailable: return 8
      case .failedToOpenQgcPlan: return 9
      case .failedToParseQgcPlan: return 10
      case .unsupportedMissionCmd: return 11
      case .transferCancelled: return 12
      case .UNRECOGNIZED(let i): return i
      }
    }

  }

  init() {}
}

#if swift(>=4.2)

extension Mavsdk_Rpc_Mission_MissionResult.Result: CaseIterable {
  // The compiler won't synthesize support with the UNRECOGNIZED case.
  static var allCases: [Mavsdk_Rpc_Mission_MissionResult.Result] = [
    .unknown,
    .success,
    .error,
    .tooManyMissionItems,
    .busy,
    .timeout,
    .invalidArgument,
    .unsupported,
    .noMissionAvailable,
    .failedToOpenQgcPlan,
    .failedToParseQgcPlan,
    .unsupportedMissionCmd,
    .transferCancelled,
  ]
}

#endif  // swift(>=4.2)

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

fileprivate let _protobuf_package = "mavsdk.rpc.mission"

extension Mavsdk_Rpc_Mission_UploadMissionRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".UploadMissionRequest"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "mission_items"),
  ]

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

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if !self.missionItems.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.missionItems, fieldNumber: 1)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

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

extension Mavsdk_Rpc_Mission_UploadMissionResponse: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".UploadMissionResponse"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "mission_result"),
  ]

  fileprivate class _StorageClass {
    var _missionResult: Mavsdk_Rpc_Mission_MissionResult? = nil

    static let defaultInstance = _StorageClass()

    private init() {}

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

  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.decodeSingularMessageField(value: &_storage._missionResult)
        default: break
        }
      }
    }
  }

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

  static func ==(lhs: Mavsdk_Rpc_Mission_UploadMissionResponse, rhs: Mavsdk_Rpc_Mission_UploadMissionResponse) -> 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._missionResult != rhs_storage._missionResult {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension Mavsdk_Rpc_Mission_CancelMissionUploadRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".CancelMissionUploadRequest"
  static let _protobuf_nameMap = SwiftProtobuf._NameMap()

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let _ = try decoder.nextFieldNumber() {
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try unknownFields.traverse(visitor: &visitor)
  }

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

extension Mavsdk_Rpc_Mission_CancelMissionUploadResponse: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".CancelMissionUploadResponse"
  static let _protobuf_nameMap = SwiftProtobuf._NameMap()

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let _ = try decoder.nextFieldNumber() {
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try unknownFields.traverse(visitor: &visitor)
  }

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

extension Mavsdk_Rpc_Mission_DownloadMissionRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".DownloadMissionRequest"
  static let _protobuf_nameMap = SwiftProtobuf._NameMap()

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let _ = try decoder.nextFieldNumber() {
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try unknownFields.traverse(visitor: &visitor)
  }

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

extension Mavsdk_Rpc_Mission_DownloadMissionResponse: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".DownloadMissionResponse"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "mission_result"),
    2: .standard(proto: "mission_items"),
  ]

  fileprivate class _StorageClass {
    var _missionResult: Mavsdk_Rpc_Mission_MissionResult? = nil
    var _missionItems: [Mavsdk_Rpc_Mission_MissionItem] = []

    static let defaultInstance = _StorageClass()

    private init() {}

    init(copying source: _StorageClass) {
      _missionResult = source._missionResult
      _missionItems = source._missionItems
    }
  }

  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.decodeSingularMessageField(value: &_storage._missionResult)
        case 2: try decoder.decodeRepeatedMessageField(value: &_storage._missionItems)
        default: break
        }
      }
    }
  }

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

  static func ==(lhs: Mavsdk_Rpc_Mission_DownloadMissionResponse, rhs: Mavsdk_Rpc_Mission_DownloadMissionResponse) -> 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._missionResult != rhs_storage._missionResult {return false}
        if _storage._missionItems != rhs_storage._missionItems {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension Mavsdk_Rpc_Mission_CancelMissionDownloadRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".CancelMissionDownloadRequest"
  static let _protobuf_nameMap = SwiftProtobuf._NameMap()

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let _ = try decoder.nextFieldNumber() {
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try unknownFields.traverse(visitor: &visitor)
  }

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

extension Mavsdk_Rpc_Mission_CancelMissionDownloadResponse: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".CancelMissionDownloadResponse"
  static let _protobuf_nameMap = SwiftProtobuf._NameMap()

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let _ = try decoder.nextFieldNumber() {
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try unknownFields.traverse(visitor: &visitor)
  }

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

extension Mavsdk_Rpc_Mission_StartMissionRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".StartMissionRequest"
  static let _protobuf_nameMap = SwiftProtobuf._NameMap()

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let _ = try decoder.nextFieldNumber() {
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try unknownFields.traverse(visitor: &visitor)
  }

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

extension Mavsdk_Rpc_Mission_StartMissionResponse: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".StartMissionResponse"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "mission_result"),
  ]

  fileprivate class _StorageClass {
    var _missionResult: Mavsdk_Rpc_Mission_MissionResult? = nil

    static let defaultInstance = _StorageClass()

    private init() {}

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

  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.decodeSingularMessageField(value: &_storage._missionResult)
        default: break
        }
      }
    }
  }

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

  static func ==(lhs: Mavsdk_Rpc_Mission_StartMissionResponse, rhs: Mavsdk_Rpc_Mission_StartMissionResponse) -> 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._missionResult != rhs_storage._missionResult {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension Mavsdk_Rpc_Mission_PauseMissionRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".PauseMissionRequest"
  static let _protobuf_nameMap = SwiftProtobuf._NameMap()

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let _ = try decoder.nextFieldNumber() {
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try unknownFields.traverse(visitor: &visitor)
  }

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

extension Mavsdk_Rpc_Mission_PauseMissionResponse: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".PauseMissionResponse"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "mission_result"),
  ]

  fileprivate class _StorageClass {
    var _missionResult: Mavsdk_Rpc_Mission_MissionResult? = nil

    static let defaultInstance = _StorageClass()

    private init() {}

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

  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.decodeSingularMessageField(value: &_storage._missionResult)
        default: break
        }
      }
    }
  }

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

  static func ==(lhs: Mavsdk_Rpc_Mission_PauseMissionResponse, rhs: Mavsdk_Rpc_Mission_PauseMissionResponse) -> 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._missionResult != rhs_storage._missionResult {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension Mavsdk_Rpc_Mission_ClearMissionRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".ClearMissionRequest"
  static let _protobuf_nameMap = SwiftProtobuf._NameMap()

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let _ = try decoder.nextFieldNumber() {
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try unknownFields.traverse(visitor: &visitor)
  }

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

extension Mavsdk_Rpc_Mission_ClearMissionResponse: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".ClearMissionResponse"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "mission_result"),
  ]

  fileprivate class _StorageClass {
    var _missionResult: Mavsdk_Rpc_Mission_MissionResult? = nil

    static let defaultInstance = _StorageClass()

    private init() {}

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

  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.decodeSingularMessageField(value: &_storage._missionResult)
        default: break
        }
      }
    }
  }

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

  static func ==(lhs: Mavsdk_Rpc_Mission_ClearMissionResponse, rhs: Mavsdk_Rpc_Mission_ClearMissionResponse) -> 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._missionResult != rhs_storage._missionResult {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

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

  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.index)
      default: break
      }
    }
  }

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

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

extension Mavsdk_Rpc_Mission_SetCurrentMissionItemIndexResponse: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".SetCurrentMissionItemIndexResponse"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "mission_result"),
  ]

  fileprivate class _StorageClass {
    var _missionResult: Mavsdk_Rpc_Mission_MissionResult? = nil

    static let defaultInstance = _StorageClass()

    private init() {}

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

  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.decodeSingularMessageField(value: &_storage._missionResult)
        default: break
        }
      }
    }
  }

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

  static func ==(lhs: Mavsdk_Rpc_Mission_SetCurrentMissionItemIndexResponse, rhs: Mavsdk_Rpc_Mission_SetCurrentMissionItemIndexResponse) -> 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._missionResult != rhs_storage._missionResult {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension Mavsdk_Rpc_Mission_IsMissionFinishedRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".IsMissionFinishedRequest"
  static let _protobuf_nameMap = SwiftProtobuf._NameMap()

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let _ = try decoder.nextFieldNumber() {
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try unknownFields.traverse(visitor: &visitor)
  }

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

extension Mavsdk_Rpc_Mission_IsMissionFinishedResponse: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".IsMissionFinishedResponse"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "is_finished"),
  ]

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

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

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

extension Mavsdk_Rpc_Mission_SubscribeMissionProgressRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".SubscribeMissionProgressRequest"
  static let _protobuf_nameMap = SwiftProtobuf._NameMap()

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let _ = try decoder.nextFieldNumber() {
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try unknownFields.traverse(visitor: &visitor)
  }

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

extension Mavsdk_Rpc_Mission_MissionProgressResponse: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".MissionProgressResponse"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "mission_progress"),
  ]

  fileprivate class _StorageClass {
    var _missionProgress: Mavsdk_Rpc_Mission_MissionProgress? = nil

    static let defaultInstance = _StorageClass()

    private init() {}

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

  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.decodeSingularMessageField(value: &_storage._missionProgress)
        default: break
        }
      }
    }
  }

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

  static func ==(lhs: Mavsdk_Rpc_Mission_MissionProgressResponse, rhs: Mavsdk_Rpc_Mission_MissionProgressResponse) -> 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._missionProgress != rhs_storage._missionProgress {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension Mavsdk_Rpc_Mission_GetReturnToLaunchAfterMissionRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".GetReturnToLaunchAfterMissionRequest"
  static let _protobuf_nameMap = SwiftProtobuf._NameMap()

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let _ = try decoder.nextFieldNumber() {
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try unknownFields.traverse(visitor: &visitor)
  }

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

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

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

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

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

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

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

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

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

extension Mavsdk_Rpc_Mission_SetReturnToLaunchAfterMissionResponse: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".SetReturnToLaunchAfterMissionResponse"
  static let _protobuf_nameMap = SwiftProtobuf._NameMap()

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let _ = try decoder.nextFieldNumber() {
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try unknownFields.traverse(visitor: &visitor)
  }

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

extension Mavsdk_Rpc_Mission_MissionItem: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".MissionItem"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "latitude_deg"),
    2: .standard(proto: "longitude_deg"),
    3: .standard(proto: "relative_altitude_m"),
    4: .standard(proto: "speed_m_s"),
    5: .standard(proto: "is_fly_through"),
    6: .standard(proto: "gimbal_pitch_deg"),
    7: .standard(proto: "gimbal_yaw_deg"),
    8: .standard(proto: "camera_action"),
    9: .standard(proto: "loiter_time_s"),
    10: .standard(proto: "camera_photo_interval_s"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularDoubleField(value: &self.latitudeDeg)
      case 2: try decoder.decodeSingularDoubleField(value: &self.longitudeDeg)
      case 3: try decoder.decodeSingularFloatField(value: &self.relativeAltitudeM)
      case 4: try decoder.decodeSingularFloatField(value: &self.speedMS)
      case 5: try decoder.decodeSingularBoolField(value: &self.isFlyThrough)
      case 6: try decoder.decodeSingularFloatField(value: &self.gimbalPitchDeg)
      case 7: try decoder.decodeSingularFloatField(value: &self.gimbalYawDeg)
      case 8: try decoder.decodeSingularEnumField(value: &self.cameraAction)
      case 9: try decoder.decodeSingularFloatField(value: &self.loiterTimeS)
      case 10: try decoder.decodeSingularDoubleField(value: &self.cameraPhotoIntervalS)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if self.latitudeDeg != 0 {
      try visitor.visitSingularDoubleField(value: self.latitudeDeg, fieldNumber: 1)
    }
    if self.longitudeDeg != 0 {
      try visitor.visitSingularDoubleField(value: self.longitudeDeg, fieldNumber: 2)
    }
    if self.relativeAltitudeM != 0 {
      try visitor.visitSingularFloatField(value: self.relativeAltitudeM, fieldNumber: 3)
    }
    if self.speedMS != 0 {
      try visitor.visitSingularFloatField(value: self.speedMS, fieldNumber: 4)
    }
    if self.isFlyThrough != false {
      try visitor.visitSingularBoolField(value: self.isFlyThrough, fieldNumber: 5)
    }
    if self.gimbalPitchDeg != 0 {
      try visitor.visitSingularFloatField(value: self.gimbalPitchDeg, fieldNumber: 6)
    }
    if self.gimbalYawDeg != 0 {
      try visitor.visitSingularFloatField(value: self.gimbalYawDeg, fieldNumber: 7)
    }
    if self.cameraAction != .none {
      try visitor.visitSingularEnumField(value: self.cameraAction, fieldNumber: 8)
    }
    if self.loiterTimeS != 0 {
      try visitor.visitSingularFloatField(value: self.loiterTimeS, fieldNumber: 9)
    }
    if self.cameraPhotoIntervalS != 0 {
      try visitor.visitSingularDoubleField(value: self.cameraPhotoIntervalS, fieldNumber: 10)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: Mavsdk_Rpc_Mission_MissionItem, rhs: Mavsdk_Rpc_Mission_MissionItem) -> Bool {
    if lhs.latitudeDeg != rhs.latitudeDeg {return false}
    if lhs.longitudeDeg != rhs.longitudeDeg {return false}
    if lhs.relativeAltitudeM != rhs.relativeAltitudeM {return false}
    if lhs.speedMS != rhs.speedMS {return false}
    if lhs.isFlyThrough != rhs.isFlyThrough {return false}
    if lhs.gimbalPitchDeg != rhs.gimbalPitchDeg {return false}
    if lhs.gimbalYawDeg != rhs.gimbalYawDeg {return false}
    if lhs.cameraAction != rhs.cameraAction {return false}
    if lhs.loiterTimeS != rhs.loiterTimeS {return false}
    if lhs.cameraPhotoIntervalS != rhs.cameraPhotoIntervalS {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension Mavsdk_Rpc_Mission_MissionItem.CameraAction: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    0: .same(proto: "NONE"),
    1: .same(proto: "TAKE_PHOTO"),
    2: .same(proto: "START_PHOTO_INTERVAL"),
    3: .same(proto: "STOP_PHOTO_INTERVAL"),
    4: .same(proto: "START_VIDEO"),
    5: .same(proto: "STOP_VIDEO"),
  ]
}

extension Mavsdk_Rpc_Mission_MissionProgress: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".MissionProgress"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "current_item_index"),
    2: .standard(proto: "mission_count"),
  ]

  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.currentItemIndex)
      case 2: try decoder.decodeSingularInt32Field(value: &self.missionCount)
      default: break
      }
    }
  }

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

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

extension Mavsdk_Rpc_Mission_MissionResult: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".MissionResult"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "result"),
    2: .standard(proto: "result_str"),
  ]

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

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if self.result != .unknown {
      try visitor.visitSingularEnumField(value: self.result, fieldNumber: 1)
    }
    if !self.resultStr.isEmpty {
      try visitor.visitSingularStringField(value: self.resultStr, fieldNumber: 2)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

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

extension Mavsdk_Rpc_Mission_MissionResult.Result: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    0: .same(proto: "UNKNOWN"),
    1: .same(proto: "SUCCESS"),
    2: .same(proto: "ERROR"),
    3: .same(proto: "TOO_MANY_MISSION_ITEMS"),
    4: .same(proto: "BUSY"),
    5: .same(proto: "TIMEOUT"),
    6: .same(proto: "INVALID_ARGUMENT"),
    7: .same(proto: "UNSUPPORTED"),
    8: .same(proto: "NO_MISSION_AVAILABLE"),
    9: .same(proto: "FAILED_TO_OPEN_QGC_PLAN"),
    10: .same(proto: "FAILED_TO_PARSE_QGC_PLAN"),
    11: .same(proto: "UNSUPPORTED_MISSION_CMD"),
    12: .same(proto: "TRANSFER_CANCELLED"),
  ]
}
