<@U0ZFBBUBU>: is this what you're looking for? ``...
# coroutines
k
@groostav: is this what you're looking for?
Copy code
class ClassWithCallback {
    fun foo(callback: (String) -> Unit) {
        callback("hello")
    }

    fun bar(callback: (Int) -> Unit) {
        callback(1)
    }
}

fun main(args: Array<String>) {
    withCallbacks {
        val cwc = ClassWithCallback()
        
        println(transformCallback(cwc::foo))
        println(transformCallback(cwc::bar))
    }
}

fun withCallbacks(coroutine c: CallbackController.() -> Continuation<Unit>) {
    CallbackController().c().resume(Unit)
}

class CallbackController {

    suspend fun <T> transformCallback(kFunction1: ((T) -> Unit) -> Any, c: Continuation<T>) {
        kFunction1 { c.resume(it) }
    }
}