| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- //
- // ExponentialInsulinModelPreset.swift
- // LoopKit
- //
- // Copyright © 2017 LoopKit Authors. All rights reserved.
- //
- public enum ExponentialInsulinModelPreset: String, Codable {
- case rapidActingAdult
- case rapidActingChild
- case fiasp
- case lyumjev
- }
- // MARK: - Model generation
- extension ExponentialInsulinModelPreset {
- public var actionDuration: TimeInterval {
- switch self {
- case .rapidActingAdult:
- return .minutes(360)
- case .rapidActingChild:
- return .minutes(360)
- case .fiasp:
- return .minutes(360)
- case .lyumjev:
- return .minutes(330)
- }
- }
- public var peakActivity: TimeInterval {
- switch self {
- case .rapidActingAdult:
- return .minutes(75)
- case .rapidActingChild:
- return .minutes(65)
- case .fiasp:
- return .minutes(55)
- case .lyumjev:
- return .minutes(45)
- }
- }
- var model: InsulinModel {
- return ExponentialInsulinModel(actionDuration: actionDuration, peakActivityTime: peakActivity)
- }
- }
- extension ExponentialInsulinModelPreset: InsulinModel {
- public var effectDuration: TimeInterval {
- return model.effectDuration
- }
-
- public var delay: TimeInterval {
- return model.delay
- }
- public func percentEffectRemaining(at time: TimeInterval) -> Double {
- return model.percentEffectRemaining(at: time)
- }
- }
- extension ExponentialInsulinModelPreset: CustomDebugStringConvertible {
- public var debugDescription: String {
- return "\(self.rawValue)(\(String(reflecting: model))"
- }
- }
|