commonMain.org.jetbrains.letsPlot.livemap.containers.SingletonCollection.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of livemap-jvm Show documentation
Show all versions of livemap-jvm Show documentation
A part of the Lets-Plot library.
The newest version!
/*
* Copyright (c) 2019. JetBrains s.r.o.
* Use of this source code is governed by the MIT license that can be found in the LICENSE file.
*/
package org.jetbrains.letsPlot.livemap.containers
fun singletonCollection(value: T): Collection = SingletonCollection(value)
class SingletonCollection(private val item: T) : AbstractCollection() {
override val size get() = 1
override fun iterator(): Iterator = SingleItemIterator(item)
private class SingleItemIterator(private val value: T) : AbstractIterator() {
private var requested = false
override fun computeNext() {
when (requested) {
false -> setNext(value)
true -> done()
}
requested = true
}
}
}