You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

21 lines
493 B

  1. package nova.monadic_sfx.util
  2. import cats.arrow.FunctionK
  3. import monix.bio.IO
  4. object IOUtils {
  5. def toIO[T](task: monix.eval.Task[T]) =
  6. IO.deferAction(implicit s => IO.from(task))
  7. def toTask[T](bio: monix.bio.IO[Throwable, T]) =
  8. monix.eval.Task.deferAction(implicit s => bio.to[monix.eval.Task])
  9. val ioTaskMapk =
  10. new FunctionK[monix.eval.Task, monix.bio.Task] {
  11. override def apply[A](
  12. fa: monix.eval.Task[A]
  13. ): monix.bio.Task[A] = toIO(fa)
  14. }
  15. }