cps.monads.catsEffect
Type members
Classlikes
part of asyncScope
part of asyncScope
- See also:
asyncScope
CpsAsyncMonad for cats-effect.
CpsAsyncMonad for cats-effect.
Value members
Concrete methods
Produce effect with resource-aware scope block.
Produce effect with resource-aware scope block.
val effect = asyncScope[IO] {
val reader = await(openFile(input))
val writer = await(openFile(output))
writer.transformFrom(0,Long.MaxValue,reader)
}
Here evaluation of effect will open reader and wrier, transfer data and then close reader and writer. block inside asyncScope evaluated in CpsResourceMonad[[X]=>>Resource[F,X]]
- See also:
[cps.monads.catsEffect.CpsResourceMonad]
Givens
Givens
Extensions
Extensions
Pseudo-synchronious syntax for resource, which can be used in async block.
Pseudo-synchronious syntax for resource, which can be used in async block.
Usage: assuming we have:
def open(file: File): Resource[IO, BufferedReader]
we can
async[IO] {
....
open(file).useOn{ buffer =>
await(doSomething)
buffer.write(r)
result
}
}
Pseudo-synchronious syntax for resource, which can be used in async block.
Pseudo-synchronious syntax for resource, which can be used in async block.
async[IO] {
....
useing(openFile){ buffer =>
await(doSomething)
buffer.write(r)
result
}
}
Pseudo-synchronious syntax for resource, which can be used in async block.
Pseudo-synchronious syntax for resource, which can be used in async block.
async[IO] {
....
useing(openFile){ buffer =>
await(doSomething)
buffer.write(r)
result
}
}
Pseudo-synchronious syntax for resource, which can be used in async block.
Pseudo-synchronious syntax for resource, which can be used in async block.
async[IO] {
....
useing(openFile){ buffer =>
await(doSomething)
buffer.write(r)
result
}
}