| 1234567891011121314151617181920212223242526272829 |
- import Foundation
- struct BasalProfileEntry: JSON, Equatable {
- let start: String
- let minutes: Int
- let rate: Decimal
- }
- protocol BasalProfileObserver {
- func basalProfileDidChange(_ basalProfile: [BasalProfileEntry])
- }
- extension BasalProfileEntry {
- private enum CodingKeys: String, CodingKey {
- case start
- case minutes
- case rate
- }
- init(from decoder: Decoder) throws {
- let container = try decoder.container(keyedBy: CodingKeys.self)
- let start = try container.decode(String.self, forKey: .start)
- let minutes = try container.decode(Int.self, forKey: .minutes)
- let rate = try container.decode(Double.self, forKey: .rate).decimal ?? .zero
- self = BasalProfileEntry(start: start, minutes: minutes, rate: rate)
- }
- }
|