DeterminationError.swift 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import Foundation
  2. enum DeterminationError: LocalizedError, Equatable {
  3. case missingGlucoseStatus
  4. case missingProfile
  5. case missingCurrentBasal
  6. case invalidProfileTarget
  7. case glucoseOutOfRange(glucose: Decimal)
  8. case cgmNoiseTooHigh(noise: Int)
  9. case noDelta
  10. case missingIob
  11. case missingInputs
  12. case eventualGlucoseCalculationError(sensitivity: Decimal, deviation: Decimal)
  13. case determinationError
  14. var errorDescription: String? {
  15. switch self {
  16. case .missingGlucoseStatus:
  17. return String(localized: "No glucose status; cannot determine basal.")
  18. case .missingProfile:
  19. return String(localized: "No profile; cannot determine basal.")
  20. case .missingCurrentBasal:
  21. // string copied from JS
  22. return String(localized: "Error: could not get current basal rate")
  23. case .invalidProfileTarget:
  24. // string copied from JS including trailing space
  25. return String(localized: "Error: could not determine target_bg. ")
  26. case let .glucoseOutOfRange(glucose):
  27. return String(localized: "Glucose out of range: \(glucose.description).")
  28. case let .cgmNoiseTooHigh(noise):
  29. return String(localized: "CGM noise level too high: \(noise).")
  30. case .noDelta:
  31. return String(localized: "No glucose delta (flat readings); cannot determine trend.")
  32. case .missingIob:
  33. return String(localized: "No IOB data available; cannot determine basal.")
  34. case .missingInputs:
  35. return String(localized: "Missing required inputs; cannot determine basal.")
  36. case let .eventualGlucoseCalculationError(sensitivity, deviation):
  37. return String(
  38. localized: "Could not calculate eventual glucose. Sensitivity: \(sensitivity.description), Deviation: \(deviation.description)"
  39. )
  40. case .determinationError:
  41. return String(localized: "Unknown determination error.")
  42. }
  43. }
  44. }