
commonMain.ru.casperix.signals.concrete.EnumeratedStorageSignal.kt Maven / Gradle / Ivy
package ru.casperix.signals.concrete
class EnumeratedStorageSignal(first: Value, val variants: Collection) : StoragePromise {
private val signal = StorageSignal(first)
override var value: Value
get() = signal.value
set(value) {
if (!variants.contains(value)) return
signal.set(value)
}
override fun cancel(slot: Slot): Boolean {
return signal.cancel(slot)
}
override fun then(listener: (Value) -> Unit): Slot {
return signal.then(listener)
}
override fun removeAllListeners() {
signal.removeAllListeners()
}
override fun set(value: Value) {
this.value = value
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy