Attributes
- Companion
- class
- Graph
-
- Supertypes
-
trait Producttrait Mirrortrait FunctoidMacroMethodstrait SimpleDistageFunctoidstrait SimpleFunctoidSyntax[Functoid]class Objecttrait Matchableclass AnyShow all
- Self type
-
Functoid.type
Members list
Type members
Inherited and Abstract types
The names of the product elements.
The names of the product elements.
Attributes
- Inherited from:
- Mirror
The name of the type.
The name of the type.
Attributes
- Inherited from:
- Mirror
Value members
Inherited methods
Like bindImplicits, but converts even fully resolved implicits into Functoid parameters.
Like bindImplicits, but converts even fully resolved implicits into Functoid parameters.
This may not be what you want, because this will also capture global utility implicits such as DummyImplicit, ClassTag and scala.collection.Factory, and turn them into DI parameters.
Attributes
- Inherited from:
- FunctoidBindImplicitsVersionSpecific
Convert unresolved implicits in the following code block, lambda or a method reference into explicit parameters that will be resolved from the object graph, not the implicit context.
Convert unresolved implicits in the following code block, lambda or a method reference into explicit parameters that will be resolved from the object graph, not the implicit context.
Example:
final case class X(a: Int, b: Double)
// LAMBDA:
make[X].from(bindImplicits {
(i: Int) => X(i, implicitly[Double])
}
// transforms into:
make[X].from {
(i: Int, d: Double) => X(i, d)
}
// CODE BLOCK:
make[X].from(bindImplicits {
X(implicitly[Int], implicitly[Double])
})
// transforms into:
make[X].from {
(i: Int, d: Double) => X(i, d)
}
// METHOD REFERENCE:
def createX(i: Int)(implicit d: Double, dx: DummyImplicit): X = X(i, d)
make[X].from(bindImplicits {
createX
})
// transforms into:
make[X].from {
(i: Int, d: Double) => createX(i)(using d, DummyImplicit.dummyImplicit)
}
// because search for DummyImplicit was __resolved__ in current implicit scope, it was taken from the implicit context,
// not from the object graph!
Attributes
- Note
-
This function is available inside ModuleDef DSL, but it can also be called outside of it as Functoid.bindImplicits
- Inherited from:
- FunctoidBindImplicitsVersionSpecific
Attributes
- Inherited from:
- SimpleFunctoids (hidden)
Derive constructor for a concrete class A using ClassConstructor
Derive constructor for a concrete class A using ClassConstructor
Attributes
- Inherited from:
- FunctoidConstructors (hidden)
Derive constructor for a "factory-like" abstract class or a trait A using FactoryConstructor
Derive constructor for a "factory-like" abstract class or a trait A using FactoryConstructor
Attributes
- See also
- Inherited from:
- FunctoidConstructors (hidden)
Derive constructor for a zio.ZEnvironment value A using ZEnvConstructor
Derive constructor for a zio.ZEnvironment value A using ZEnvConstructor
Attributes
- See also
- Inherited from:
- FunctoidConstructors (hidden)
Derive constructor for an abstract class or a trait A using TraitConstructor
Derive constructor for an abstract class or a trait A using TraitConstructor
Attributes
- See also
- Inherited from:
- FunctoidConstructors (hidden)
Attributes
- Inherited from:
- SimpleFunctoids (hidden)
Attributes
- Inherited from:
- SimpleFunctoids (hidden)
Attributes
- Inherited from:
- SimpleDistageFunctoids
Deprecated and Inherited methods
Attributes
- Deprecated
- Same as `makeClass`, use `makeClass`
- Inherited from:
- FunctoidConstructors (hidden)
Implicits
Inherited implicits
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Attributes
- Inherited from:
- FunctoidMacroMethods
Allow conversion from argument-less blocks, but only within a bindImplicits block
Allow conversion from argument-less blocks, but only within a bindImplicits block
make[X].from(bindImplicits {
makeX
})
def makeX(implicit d: ImplicitDependency) = new X(d)
Attributes
- Inherited from:
- FunctoidMacroByNameConversion
Allows you to bind cats.effect.Resource-based constructors in ModuleDef:
Allows you to bind cats.effect.Resource-based constructors in ModuleDef:
Example:
import cats.effect._
val catsResource = Resource.liftF(IO(5))
val module = new distage.ModuleDef {
make[Int].fromResource(catsResource)
}
Attributes
- Note
-
binding a cats Resource[F, A] will add a dependency on
Sync[F]for your correspondingFtype (Sync[F]instance will generally be provided automatically via izumi.distage.modules.DefaultModule) - Inherited from:
- FunctoidLifecycleAdapters (hidden)
Allows you to bind Scoped zio.ZIO-based constructors in ModuleDef:
Allows you to bind Scoped zio.ZIO-based constructors in ModuleDef:
Attributes
- Inherited from:
- FunctoidLifecycleAdapters (hidden)
Allows you to bind Scoped zio.ZIO-based constructors in ModuleDef:
Allows you to bind Scoped zio.ZIO-based constructors in ModuleDef:
Attributes
- Inherited from:
- FunctoidLifecycleAdapters (hidden)
Allows you to bind zio.ZLayer-based constructors in ModuleDef:
Allows you to bind zio.ZLayer-based constructors in ModuleDef:
Attributes
- Inherited from:
- FunctoidLifecycleAdapters (hidden)
Allows you to bind zio.ZLayer-based constructors in ModuleDef:
Allows you to bind zio.ZLayer-based constructors in ModuleDef:
Attributes
- Inherited from:
- FunctoidLifecycleAdapters (hidden)
Allows you to bind zio.managed.ZManaged-based constructors in ModuleDef:
Allows you to bind zio.managed.ZManaged-based constructors in ModuleDef:
Attributes
- Inherited from:
- FunctoidLifecycleAdapters (hidden)
Allows you to bind zio.managed.ZManaged-based constructors in ModuleDef:
Allows you to bind zio.managed.ZManaged-based constructors in ModuleDef:
Attributes
- Inherited from:
- FunctoidLifecycleAdapters (hidden)
Attributes
- Inherited from:
- SimpleFunctoidSyntax