Преглед изворни кода

Use reduce instead of flatMap + zip for removal logic

Sam King пре 5 месеци
родитељ
комит
813b74a829
1 измењених фајлова са 3 додато и 4 уклоњено
  1. 3 4
      Trio/Sources/APS/OpenAPSSwift/Iob/IobHistory.swift

+ 3 - 4
Trio/Sources/APS/OpenAPSSwift/Iob/IobHistory.swift

@@ -118,10 +118,9 @@ struct IobHistory {
         let pumpSuspendResumeFull = pumpHistory.filter { $0.type == .pumpSuspend || $0.type == .pumpResume }
 
         // drop all repeated suspend / resume events to match JS
-        var pumpSuspendResume = pumpSuspendResumeFull.first.flatMap({ [$0] }) ?? []
-        for (prev, curr) in zip(pumpSuspendResumeFull, pumpSuspendResumeFull.dropFirst()) {
-            if prev.type != curr.type {
-                pumpSuspendResume.append(curr)
+        let pumpSuspendResume = pumpSuspendResumeFull.reduce(into: [ComputedPumpHistoryEvent]()) { result, event in
+            if result.last?.type != event.type {
+                result.append(event)
             }
         }