extension ISFEditor { final class Provider: BaseProvider, ISFEditorProvider { var profile: InsulinSensitivities { storage.retrieve(OpenAPS.Settings.insulinSensitivities, as: InsulinSensitivities.self) ?? InsulinSensitivities(from: OpenAPS.defaults(for: OpenAPS.Settings.insulinSensitivities)) ?? InsulinSensitivities( units: .mmolL, userPrefferedUnits: .mmolL, sensitivities: [] ) } func saveProfile(_ profile: InsulinSensitivities) { storage.save(profile, as: OpenAPS.Settings.insulinSensitivities) } var autosense: Autosens { storage.retrieve(OpenAPS.Settings.autosense, as: Autosens.self) ?? Autosens(from: OpenAPS.defaults(for: OpenAPS.Settings.autosense)) ?? Autosens(ratio: 1, newisf: nil, timestamp: nil) } var suggestion: Suggestion? { storage.retrieve(OpenAPS.Enact.suggested, as: Suggestion.self) } var autotune: Autotune? { storage.retrieve(OpenAPS.Settings.autotune, as: Autotune.self) } } }