AdaptFunctoid

izumi.distage.model.definition.dsl.LifecycleAdapters$.AdaptFunctoid$
See theAdaptFunctoid companion trait

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Concise view

Type members

Types

type Aux[A, B] = AdaptFunctoid[A] { type Out = B; }

Implicits

Implicits

final implicit def providerFromCatsProvider[F[_], A]: Aux[Resource[F, A], FromCats[F, A]]

Allows you to bind cats.effect.Resource-based constructor functions in ModuleDef:

Allows you to bind cats.effect.Resource-based constructor functions in ModuleDef:

Example:

 import cats.effect._
 import doobie.hikari._

 final case class JdbcConfig(driverClassName: String, url: String, user: String, pass: String)

 val module = new distage.ModuleDef {
   make[ExecutionContext].from(scala.concurrent.ExecutionContext.global)

   make[JdbcConfig].from {
     conf: JdbcConfig @ConfPath("jdbc") => conf
   }

   make[HikariTransactor[IO]].fromResource {
     (ec: ExecutionContext, jdbc: JdbcConfig) =>
       implicit val contextShift: ContextShift[IO] = IO.contextShift(ec)

       HikariTransactor.newHikariTransactor[IO](jdbc.driverClassName, jdbc.url, jdbc.user, jdbc.pass, ec, ec)
   }
 }

Attributes

Note:

binding a cats Resource[F, A] will add a dependency on Sync[F] for your corresponding F type (Sync[F] instance will generally be provided automatically via izumi.distage.modules.DefaultModule)

final implicit def providerFromZIOScopedProvider[E, A]: Aux[ZIO[Scope, E, A], FromZIO[Any, E, A]]

Allows you to bind Scoped zio.ZIO-based constructor functions in ModuleDef:

Allows you to bind Scoped zio.ZIO-based constructor functions in ModuleDef:

Attributes

Note:

due to limitations of Scala 2 type inference, only plain Scope environment is supported here. if you need to inject ZIO with other types use fromZIOEnv method instead of fromResource.

final implicit def providerFromZLayerProvider[R, E, A : Tag]: Aux[ZLayer[R, E, A], FromZIO[R, E, A]]

Allows you to bind zio.managed.ZManaged-based constructor functions in ModuleDef:

Allows you to bind zio.managed.ZManaged-based constructor functions in ModuleDef:

Attributes

final implicit def providerFromZManagedProvider[R, E, A]: Aux[ZManaged[R, E, A], FromZIO[R, E, A]]

Allows you to bind zio.managed.ZManaged-based constructor functions in ModuleDef:

Allows you to bind zio.managed.ZManaged-based constructor functions in ModuleDef:

Attributes