// // RoutingError.swift // Meshtastic // // Copyright(c) Garth Vander Houwen 8/4/22. // import Foundation import SwiftUI import MeshtasticProtobufs enum RoutingError: Int, CaseIterable, Identifiable { case none = 0 case noRoute = 1 case gotNak = 2 case timeout = 3 case noInterface = 4 case maxRetransmit = 5 case noChannel = 6 case tooLarge = 7 case noResponse = 8 case dutyCycleLimit = 9 case badRequest = 32 case notAuthorized = 33 case pkiFailed = 34 case pkiUnknownPubkey = 35 var id: Int { self.rawValue } var display: String { switch self { case .none: return "routing.acknowledged".localized case .noRoute: return "routing.noroute".localized case .gotNak: return "routing.gotnak".localized case .timeout: return "routing.timeout".localized case .noInterface: return "routing.nointerface".localized case .maxRetransmit: return "routing.maxretransmit".localized case .noChannel: return "routing.nochannel".localized case .tooLarge: return "routing.toolarge".localized case .noResponse: return "routing.noresponse".localized case .dutyCycleLimit: return "routing.dutycyclelimit".localized case .badRequest: return "routing.badRequest".localized case .notAuthorized: return "routing.notauthorized".localized case .pkiFailed: return "routing.pkiFailed".localized case .pkiUnknownPubkey: return "routing.pkiunknownpubkey".localized } } var color: Color { switch self { case .none: return Color.secondary case .noRoute: return Color.red case .gotNak: return Color.red case .timeout: return Color.orange case .noInterface: return Color.red case .maxRetransmit: return Color.red case .noChannel: return Color.orange case .tooLarge: return Color.red case .noResponse: return Color.orange case .dutyCycleLimit: return Color.orange case .badRequest: return Color.red case .notAuthorized: return Color.red case .pkiFailed: return Color.red case .pkiUnknownPubkey: return Color.red } } func protoEnumValue() -> Routing.Error { switch self { case .none: return Routing.Error.none case .noRoute: return Routing.Error.noRoute case .gotNak: return Routing.Error.gotNak case .timeout: return Routing.Error.timeout case .noInterface: return Routing.Error.noInterface case .maxRetransmit: return Routing.Error.maxRetransmit case .noChannel: return Routing.Error.noChannel case .tooLarge: return Routing.Error.tooLarge case .noResponse: return Routing.Error.noResponse case .dutyCycleLimit: return Routing.Error.dutyCycleLimit case .badRequest: return Routing.Error.badRequest case .notAuthorized: return Routing.Error.notAuthorized case .pkiFailed: return Routing.Error.pkiFailed case .pkiUnknownPubkey: return Routing.Error.pkiUnknownPubkey } } }