FavoriteFood.swift 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. //
  2. // FavoriteFood.swift
  3. // LoopKit
  4. //
  5. // Created by Noah Brauner on 7/13/23.
  6. // Copyright © 2023 LoopKit Authors. All rights reserved.
  7. //
  8. import HealthKit
  9. public protocol FavoriteFood {
  10. var name: String { get }
  11. var carbsQuantity: HKQuantity { get }
  12. var foodType: String { get }
  13. var absorptionTime: TimeInterval { get }
  14. }
  15. extension FavoriteFood {
  16. public var title: String {
  17. return name + " " + foodType
  18. }
  19. public func absorptionTimeString(formatter: DateComponentsFormatter) -> String {
  20. guard let string = formatter.string(from: absorptionTime) else {
  21. assertionFailure("Unable to format \(String(describing: absorptionTime))")
  22. return ""
  23. }
  24. return string
  25. }
  26. public func carbsString(formatter: QuantityFormatter) -> String {
  27. guard let string = formatter.string(from: carbsQuantity) else {
  28. assertionFailure("Unable to format \(String(describing: carbsQuantity)) into gram format")
  29. return ""
  30. }
  31. return string
  32. }
  33. }