bogdoll
12/18/2023, 9:10 AMdata class JdbcScope(val jdbc: Connection)
data class LoggerScope(val logger: Logger)
fun main() {
runWithDbAndLogger {
demoBlock()
}
}
context(JdbcScope, LoggerScope)
fun demoBlock() {
// do some stuff
}
fun runWithDbAndLogger(block: ()->Unit) {
val jdbcScope = TODO("define here some connection")
val loggerScope = TODO("define here your logger")
with (jdbcScope) {
with (loggerScope) {
block()
}
}
}
This does not work:
context(JdbcScope, LoggerScope)
fun runWithDbAndLogger(block: ()->Unit)
And that also does not work:
fun runWithDbAndLogger(context(JdbcScope, LoggerScope) block: ()->Unit)
What would be the correct syntax do to it?Sam
12/18/2023, 9:20 AMblock: context(...) () -> Unit
Sam
12/18/2023, 9:20 AMYoussef Shoaib [MOD]
12/18/2023, 10:25 AMdata class JdbcScope(val jdbc: Connection)
data class LoggerScope(val logger: Logger)
fun main() {
runWithDbAndLogger {
demoBlock()
}
}
context(JdbcScope, LoggerScope)
fun demoBlock() {
// do some stuff
}
fun runWithDbAndLogger(block: context(JdbcScope, LoggerScope) () -> Unit) {
val jdbcScope: JdbcScope = TODO("define here some connection")
val loggerScope: LoggerScope = TODO("define here your logger")
block(jdbcScope, loggerScope) // sadly, we have to use this syntax for now
}
Youssef Shoaib [MOD]
12/18/2023, 10:45 AMblock: context(...) () -> R