Skip to content

Commit 13265d9

Browse files
committed
refactor: be more concise
1 parent 9a3c92e commit 13265d9

1 file changed

Lines changed: 8 additions & 16 deletions

File tree

  • jindong/src/commonMain/kotlin/io/github/jindong/node

jindong/src/commonMain/kotlin/io/github/jindong/node/RepeatNode.kt

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -40,19 +40,16 @@ internal class RepeatNode(
4040

4141
override fun collectEvents(startTimeMs: Long): List<ScheduledHapticEvent> {
4242
require(count >= 0) { "count must be non-negative, but was $count" }
43-
if (count == 0) return emptyList()
4443

45-
return (0 until count)
46-
.fold(
47-
initial = IterationState(startTimeMs, emptyList()),
48-
) { state, _ ->
49-
val (events, endTimeMs) = collectIterationEvents(state.nextStartTimeMs)
50-
IterationState(
51-
nextStartTimeMs = endTimeMs,
52-
events = state.events + events,
53-
)
44+
return buildList {
45+
var currentTime = startTimeMs
46+
47+
repeat(count) {
48+
val (events, endTimeMs) = collectIterationEvents(currentTime)
49+
addAll(events)
50+
currentTime = endTimeMs
5451
}
55-
.events
52+
}
5653
}
5754

5855
/**
@@ -81,11 +78,6 @@ internal class RepeatNode(
8178
return IterationResult(events = events, endTimeMs = currentTimeMs)
8279
}
8380

84-
private data class IterationState(
85-
val nextStartTimeMs: Long,
86-
val events: List<ScheduledHapticEvent>,
87-
)
88-
8981
private data class ChildState(
9082
val currentTimeMs: Long,
9183
val events: List<ScheduledHapticEvent>,

0 commit comments

Comments
 (0)