ReservoirReading.swift 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. //
  2. // ReservoirReading.swift
  3. // MinimedKit
  4. //
  5. // Created by Pete Schwamb on 2/4/19.
  6. // Copyright © 2019 Pete Schwamb. All rights reserved.
  7. //
  8. import Foundation
  9. import LoopKit
  10. public struct ReservoirReading: RawRepresentable, Equatable {
  11. public typealias RawValue = [String: Any]
  12. public let units: Double
  13. public let validAt: Date
  14. public init(units: Double, validAt: Date) {
  15. self.units = units
  16. self.validAt = validAt
  17. }
  18. public init?(rawValue: RawValue) {
  19. guard
  20. let units = rawValue["units"] as? Double,
  21. let validAt = rawValue["validAt"] as? Date
  22. else {
  23. return nil
  24. }
  25. self.units = units
  26. self.validAt = validAt
  27. }
  28. public var rawValue: RawValue {
  29. return [
  30. "units": units,
  31. "validAt": validAt
  32. ]
  33. }
  34. }
  35. extension ReservoirReading: ReservoirValue {
  36. public var startDate: Date {
  37. return validAt
  38. }
  39. public var unitVolume: Double {
  40. return units
  41. }
  42. }