ReservoirValue.swift 765 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. //
  2. // ReservoirValue.swift
  3. // LoopKit
  4. //
  5. // Created by Nate Racklyeft on 8/1/16.
  6. // Copyright © 2016 Nathan Racklyeft. All rights reserved.
  7. //
  8. import Foundation
  9. import CoreData
  10. public protocol ReservoirValue: TimelineValue {
  11. var startDate: Date { get }
  12. var unitVolume: Double { get }
  13. }
  14. struct StoredReservoirValue: ReservoirValue {
  15. let startDate: Date
  16. let unitVolume: Double
  17. let objectIDURL: URL
  18. }
  19. extension Reservoir: ReservoirValue {
  20. var startDate: Date {
  21. return date
  22. }
  23. var unitVolume: Double {
  24. return volume
  25. }
  26. var storedReservoirValue: StoredReservoirValue {
  27. return StoredReservoirValue(startDate: startDate, unitVolume: unitVolume, objectIDURL: objectID.uriRepresentation())
  28. }
  29. }