Skip to content

Instantly share code, notes, and snippets.

View bendikv's full-sized avatar

Vitaliy Bendik bendikv

View GitHub Profile

Keybase proof

I hereby claim:

  • I am bendikv on github.
  • I am bendikv (https://keybase.io/bendikv) on keybase.
  • I have a public key ASAolH1J1_p8Xxk6xoaiBIgV8sQhVUWvJV-a1W9wXGQA2go

To claim this, I am signing this object:

import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty
inline fun <T> convertable(initialValue: T, crossinline f: (v: T) -> T, crossinline onChange: (property: KProperty<*>, oldValue: T, newValue: T) -> Unit):
ReadWriteProperty<Any?, T> = object : ConvertableVar<T>(initialValue) {
override fun onChange(property: KProperty<*>, oldValue: T, newValue: T) = onChange(property, oldValue, newValue)
override fun convertValue(value: T) = f.invoke(value)
}