arrow-fx-coroutines / arrow.fx.coroutines / Resource / use

use

suspend infix fun <B> use(f: suspend (A) -> B): B

Use the created resource When done will run all finalizers

import arrow.fx.coroutines.*

suspend fun acquireResource(): Int = 42.also { println("Getting expensive resource") }
suspend fun releaseResource(r: Int): Unit = println("Releasing expensive resource: $r")

suspend fun main(): Unit {
  //sampleStart
  Resource(::acquireResource, ::releaseResource)
    .use { println("Expensive resource under use! $it") }
  //sampleEnd
}

Do you like Arrow?

Arrow Org
<