All Downloads are FREE. Search and download functionalities are using the official Maven repository.

effectie.core.Fx.scala Maven / Gradle / Ivy

package effectie.core

import scala.annotation.implicitNotFound

/** @author Kevin Lee
  * @since 2021-11-03
  */
@implicitNotFound(
  """
  Could not find an implicit Fx[${F}]. You can probably find it from the effectie.instances package.
  ---
  If you want to use IO from cats-effect 2, try effectie-cats-effect2.
    import effectie.instances.ce2.fx._

    // for Scala 3
    import effectie.instances.ce2.fx.given
    // or
    import effectie.instances.ce2.fx.ioFx

  For cats-effect 3, try effectie-cats-effect3.
    import effectie.instances.ce3.fx._

    // for Scala 3
    import effectie.instances.ce3.fx.given
    // or
    import effectie.instances.ce3.fx.ioFx

  If you want to use Task from Monix 3, try effectie-monix3.
    import effectie.instances.monix3.fx._

    // for Scala 3
    import effectie.instances.monix3.fx.given
    // or
    import effectie.instances.monix3.fx.taskFx

  For Scala's Future, It is just
    import effectie.instances.future.fx._

    // for Scala 3
    import effectie.instances.future.fx.given
    // or
    import effectie.instances.future.fx.futureFx

  If you don't want to use any effect but the raw data, you can use the instance for cats.Id
    import effectie.instances.id.fx._

    // for Scala 3
    import effectie.instances.id.fx.given
    // or
    import effectie.instances.id.fx.idFx
  ---
  """
)
trait Fx[F[*]] extends FxCtor[F] with CanCatch[F] with CanHandleError[F] with CanRecover[F]

object Fx {

  def apply[F[*]: Fx]: Fx[F] = implicitly[Fx[F]]

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy