arrow-fx-coroutines / arrow.fx.coroutines / Resource / invoke
operator fun <A> invoke(acquire: suspend () -> A, release: suspend (A,
ExitCase
) ->
Unit
):
Resource
<A>
Construct a Resource from a allocating function acquire and a release function release.
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
val resource = Resource(::acquireResource, ::releaseResource)
resource.use {
println("Expensive resource under use! $it")
}
//sampleEnd
}
operator fun <A> invoke(acquire: suspend () -> A, release: suspend (A) ->
Unit
):
Resource
<A>
Construct a Resource from a allocating function acquire and a release function release.
See Also
Do you like Arrow?
✖