TransmitterStatus.swift 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. //
  2. // TransmitterStatus.swift
  3. // xDripG5
  4. //
  5. // Created by Nathan Racklyeft on 3/26/16.
  6. // Copyright © 2016 Nathan Racklyeft. All rights reserved.
  7. //
  8. import Foundation
  9. public enum TransmitterStatus {
  10. public typealias RawValue = UInt8
  11. case ok
  12. case lowBattery
  13. case unknown(RawValue)
  14. init(rawValue: RawValue) {
  15. switch rawValue {
  16. case 0:
  17. self = .ok
  18. case 0x81:
  19. self = .lowBattery
  20. default:
  21. self = .unknown(rawValue)
  22. }
  23. }
  24. }
  25. extension TransmitterStatus: Equatable { }
  26. public func ==(lhs: TransmitterStatus, rhs: TransmitterStatus) -> Bool {
  27. switch (lhs, rhs) {
  28. case (.ok, .ok), (.lowBattery, .lowBattery):
  29. return true
  30. case (.unknown(let left), .unknown(let right)) where left == right:
  31. return true
  32. default:
  33. return false
  34. }
  35. }
  36. extension TransmitterStatus {
  37. public var localizedDescription: String {
  38. switch self {
  39. case .ok:
  40. return LocalizedString("OK", comment: "Describes a functioning transmitter")
  41. case .lowBattery:
  42. return LocalizedString("Low Battery", comment: "Describes a low battery")
  43. case .unknown(let value):
  44. return "TransmitterStatus.unknown(\(value))"
  45. }
  46. }
  47. }