Turns out
scan
is what I was looking for 🙂
data class State(val max: Int)
val l = flowOf(1,3,2,5,4,3,6,2,3)
.scan(State(0)) { state, value ->
// Do something fun with max here
State(maxOf(state.max, value))
}
... or while preserving the original flow...
data class State(val max: Int, val value: Int)
val l = flowOf(1,3,2,5,4,3,6,2,3)
.scan(State(0, 0)) { state, value ->
// Do something fun with max here
State(maxOf(state.max, value), value)
}
.drop(1)
.map { it.value }