26 lines
650 B
Kotlin
Vendored
26 lines
650 B
Kotlin
Vendored
open class IIterator<out T> {
|
|
fun next() : T
|
|
val hasNext : Boolean
|
|
|
|
fun toArray(buffer : MutableArray<in T>) : Int { // T is still an in-parameter
|
|
return fillBuffer(buffer, 0, buffer.size)
|
|
}
|
|
|
|
fun toArray(buffer : MutableArray<in T>, from : Int, length : Int) : Int { // T is still an in-parameter
|
|
if (from < 0 || from > buffer.lastIndex || length < 0 || length > buffer.size - from) {
|
|
throw IndexOutOfBoundsException();
|
|
}
|
|
|
|
if (len == 0) return 0
|
|
|
|
var count = 0;
|
|
for (i in from .. from + length - 1) {
|
|
if (!hasNext)
|
|
return count
|
|
buffer[i] = next()
|
|
count++
|
|
}
|
|
return count
|
|
}
|
|
}
|