PeripheralManagerError.swift 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. //
  2. // PeripheralManagerError.swift
  3. // xDripG5
  4. //
  5. // Copyright © 2017 LoopKit Authors. All rights reserved.
  6. //
  7. import CoreBluetooth
  8. enum PeripheralManagerError: Error {
  9. case cbPeripheralError(Error)
  10. case notReady
  11. case invalidConfiguration
  12. case timeout
  13. case unknownCharacteristic
  14. }
  15. extension PeripheralManagerError: LocalizedError {
  16. var errorDescription: String? {
  17. switch self {
  18. case .cbPeripheralError(let error):
  19. return error.localizedDescription
  20. case .notReady:
  21. return LocalizedString("Peripheral isnʼt connected", comment: "Not ready error description")
  22. case .invalidConfiguration:
  23. return LocalizedString("Peripheral command was invalid", comment: "invlid config error description")
  24. case .timeout:
  25. return LocalizedString("Peripheral did not respond in time", comment: "Timeout error description")
  26. case .unknownCharacteristic:
  27. return LocalizedString("Unknown characteristic", comment: "Error description")
  28. }
  29. }
  30. var failureReason: String? {
  31. switch self {
  32. case .cbPeripheralError(let error as NSError):
  33. return error.localizedFailureReason
  34. default:
  35. return errorDescription
  36. }
  37. }
  38. }