[WASM] Implement ConstrainedOnceSequence

This commit is contained in:
Igor Yakovlev
2022-01-27 15:53:42 +01:00
parent d0370bd145
commit ea76501f9e
@@ -5,8 +5,12 @@
package kotlin.sequences
internal actual class ConstrainedOnceSequence<T> : Sequence<T> {
actual constructor(sequence: Sequence<T>) { TODO("Wasm stdlib: ConstrainedOnceSequence") }
internal actual class ConstrainedOnceSequence<T> actual constructor(sequence: Sequence<T>) : Sequence<T> {
private var sequenceRef: Sequence<T>? = sequence
actual override fun iterator(): Iterator<T> = TODO("Wasm stdlib: ConstrainedOnceSequence")
actual override fun iterator(): Iterator<T> {
val sequence = sequenceRef ?: throw IllegalStateException("This sequence can be consumed only once.")
sequenceRef = null
return sequence.iterator()
}
}