All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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