izumi.distage.model.definition.dsl
Members list
Type members
Classlikes
object AbstractBindingDefDSL
Attributes
- Companion
- trait
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
trait AbstractBindingDefDSL[BindDSL[_], BindDSLAfterFrom[_], SetDSL[_]] extends AbstractBindingDefDSLMacro[BindDSL], FunctoidBindImplicitsVersionSpecific
Attributes
- Companion
- object
- Supertypes
- Known subtypes
-
trait ModuleDefDSLtrait BootstrapModuleDefclass BootstrapPlatformModuleclass GraphDumpBootstrapModuleobject GraphDumpBootstrapModuleclass AutoSetModuleclass BootstrapPluginDef[T]class LogstageModuletrait ModuleDefclass AppConfigModuletrait ConfigModuleDeftrait ConfigModuleDefNoMetaclass CassandraDockerModule[F]class ElasticMQDockerModule[F]class PostgresDockerModule[F]class DockerSupportModule[F]class DistagePlatformModuleobject LogstageFailureHandlerModuletrait CatsIOSupportModuleobject CatsIOSupportModuletrait IdentitySupportModuleobject IdentitySupportModuleclass ZIOCatsEffectInstancesModule[R]class PluginDef[T]class BundledRolesModule[F]trait RoleModuleDefclass RoleAppBootArgsModuleclass RoleAppBootConfigModuleclass RoleAppBootLoggerModuleclass RoleAppBootModule[F]class TestRuntimeModule[F]class TestkitRunnerModule[F]class LogIOModule[F]class LogIO2Module[F]class LogIO3Module[F]trait LocatorDefShow all
- Self type
-
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
trait ModuleDefDSLtrait BootstrapModuleDefclass BootstrapPlatformModuleclass GraphDumpBootstrapModuleobject GraphDumpBootstrapModuleclass AutoSetModuleclass BootstrapPluginDef[T]class LogstageModuletrait ModuleDefclass AppConfigModuletrait ConfigModuleDeftrait ConfigModuleDefNoMetaclass CassandraDockerModule[F]class ElasticMQDockerModule[F]class PostgresDockerModule[F]class DockerSupportModule[F]class DistagePlatformModuleobject LogstageFailureHandlerModuletrait CatsIOSupportModuleobject CatsIOSupportModuletrait IdentitySupportModuleobject IdentitySupportModuleclass ZIOCatsEffectInstancesModule[R]class PluginDef[T]class BundledRolesModule[F]trait RoleModuleDefclass RoleAppBootArgsModuleclass RoleAppBootConfigModuleclass RoleAppBootLoggerModuleclass RoleAppBootModule[F]class TestRuntimeModule[F]class TestkitRunnerModule[F]class LogIOModule[F]class LogIO2Module[F]class LogIO3Module[F]trait LocatorDefShow all
object IncludesDSL
Attributes
- Companion
- trait
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
IncludesDSL.type
trait IncludesDSL
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
trait ModuleDefDSLtrait BootstrapModuleDefclass BootstrapPlatformModuleclass GraphDumpBootstrapModuleobject GraphDumpBootstrapModuleclass AutoSetModuleclass BootstrapPluginDef[T]class LogstageModuletrait ModuleDefclass AppConfigModuletrait ConfigModuleDeftrait ConfigModuleDefNoMetaclass CassandraDockerModule[F]class ElasticMQDockerModule[F]class PostgresDockerModule[F]class DockerSupportModule[F]class DistagePlatformModuleobject LogstageFailureHandlerModuletrait CatsIOSupportModuleobject CatsIOSupportModuletrait IdentitySupportModuleobject IdentitySupportModuleclass ZIOCatsEffectInstancesModule[R]class PluginDef[T]class BundledRolesModule[F]trait RoleModuleDefclass RoleAppBootArgsModuleclass RoleAppBootConfigModuleclass RoleAppBootLoggerModuleclass RoleAppBootModule[F]class TestRuntimeModule[F]class TestkitRunnerModule[F]class LogIOModule[F]class LogIO2Module[F]class LogIO3Module[F]Show all
object LifecycleAdapters
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
LifecycleAdapters.type
trait LifecycleTagLowPriority
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
object LifecycleTag
object ModuleDefDSL
Attributes
- Companion
- trait
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ModuleDefDSL.type
trait ModuleDefDSL extends AbstractBindingDefDSL[MakeDSL, MakeDSLUnnamedAfterFrom, SetDSL], IncludesDSL, TagsDSL
DSL for defining module Bindings.
DSL for defining module Bindings.
Example:
class Program[F[_]: TagK] extends ModuleDef {
make[TaglessProgram[F]]
}
object TryInterpreters extends ModuleDef {
make[Validation.Handler[Try]].from(tryValidationHandler)
make[Interaction.Handler[Try]].from(tryInteractionHandler)
}
// Combine modules into a full program
val TryProgram = new Program[Try] ++ TryInterpreters
Singleton bindings:
make[X]= create X using its constructormakeTrait[X]= create an abstract class or a traitXusing izumi.distage.constructors.TraitConstructor (Auto-Traits feature)makeFactory[X]= create a "factory-like" abstract class or a traitXusing izumi.distage.constructors.FactoryConstructor (Auto-Factories feature)make[X].from[XImpl]= bind X to its subtype XImpl using XImpl's constructormake[X].fromTrait[XImpl]= bind X to its abstract class or a trait subtype XImpl, deriving constructor using izumi.distage.constructors.TraitConstructor (Auto-Traits feature)make[X].fromFactory[XImpl]= bind X to its "factory-like" abstract class or a trait subtype XImpl, deriving constructor using izumi.distage.constructors.FactoryConstructor (Auto-Factories feature)make[X].from(myX)= bind X to an already existing instancemyXmake[X].from { y: Y => new X(y) }= bind X to an instance of X constructed by a given Functoid requesting an Y parametermake[X].from { y: Y @Id("special") => new X(y) }= bind X to an instance of X constructed by a given Functoid, requesting a named "special" Y parametermake[X].from { y: Y => new X(y) }.annotateParameterY = bind X to an instance of X constructed by a given Functoid, requesting a named "special" Y parametermake[X].named("special")= bind a named instance of X. It can then be summoned using Id annotation.make[X].using[X]("special")= bind X to refer to another already bound named instance at key[X].named("special")make[X].fromEffect(X.create[F]: F[X])= create X using a purely-functional effectX.createinFmonadmake[X].fromResource(X.resource[F]: Lifecycle[F, X])= create X using aLifecyclevalue specifying its creation and destruction lifecyclemake[X].from[XImpl].modify(fun(_))= Create X using XImpl's constructor and applyfunto the resultmake[X].from[XImpl].modifyBy(_.flatAp { (c: C, d: D) => (x: X) => c.method(x, d) })= Create X using XImpl's constructor and modify itsFunctoidusing the provided lambda - in this case by summoning additionalC&Ddependencies and applyingC.methodtoX
Set bindings:
many[X].add[X1].add[X2]= bind aSetof X, and add subtypes X1 and X2 created via their constructors to it. Sets can be bound in multiple different modules. All the elements of the same set in different modules will be joined together.many[X].add(x1).add(x2)= add instances x1 and x2 to aSet[X]many[X].add { y: Y => new X1(y).add { y: Y => X2(y) }= add instances of X1 and X2 constructed by a given Provider functionmany[X].named("special").add[X1]= create a named set of X, all the elements of it are added to this named set.many[X].ref[XImpl]= add a reference to an already existing binding of XImpl to a set of X'smany[X].ref[X]("special")= add a reference to an existing named binding of X to a set of X's
Mutators:
modify[X](fun(_))= add a modifier applyingfunto the value bound atX(mutator application order is unspecified)modify[X].by(_.flatAp { (c: C, d: D) => (x: X) => c.method(x, d) })= add a modifier, applying the provided lambda to aFunctoidretrievingX- in this case by summoning additionalC&Ddependencies and applyingC.methodtoX
Tags:
make[X].tagged("t1", "t2)= attach tags to X's binding.many[X].add[X1].tagged("x1tag")= Tag a specific element of X. The tags of sets and their elements are separate.many[X].tagged("xsettag")= Tag the binding of empty Set of X with a tag. The tags of sets and their elements are separate.
Includes:
include(that: ModuleDef)= add all bindings inthatmodule intothismodule
Attributes
- See also
- Companion
- object
- Supertypes
- Known subtypes
-
trait BootstrapModuleDefclass BootstrapPlatformModuleclass GraphDumpBootstrapModuleobject GraphDumpBootstrapModuleclass AutoSetModuleclass BootstrapPluginDef[T]class LogstageModuletrait ModuleDefclass AppConfigModuletrait ConfigModuleDeftrait ConfigModuleDefNoMetaclass CassandraDockerModule[F]class ElasticMQDockerModule[F]class PostgresDockerModule[F]class DockerSupportModule[F]class DistagePlatformModuleobject LogstageFailureHandlerModuletrait CatsIOSupportModuleobject CatsIOSupportModuletrait IdentitySupportModuleobject IdentitySupportModuleclass ZIOCatsEffectInstancesModule[R]class PluginDef[T]class BundledRolesModule[F]trait RoleModuleDefclass RoleAppBootArgsModuleclass RoleAppBootConfigModuleclass RoleAppBootLoggerModuleclass RoleAppBootModule[F]class TestRuntimeModule[F]class TestkitRunnerModule[F]class LogIOModule[F]class LogIO2Module[F]class LogIO3Module[F]Show all
- Self type
trait Tagging[Self] extends Any
Attributes
- Supertypes
-
class Any
- Known subtypes
-
class ModifyTaggingDSL[T]class SubcontextDSL[T]class SubcontextNamedDSL[T]class MakeDSL[T]class MakeDSLNamedAfterFrom[T]class MakeDSLUnnamedAfterFrom[T]class MakeNamedDSL[T]class MultiSetElementDSL[T]class SetDSL[T]class SetElementDSL[T]class SetNamedDSL[T]Show all
trait TagsDSL
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
trait ModuleDefDSLtrait BootstrapModuleDefclass BootstrapPlatformModuleclass GraphDumpBootstrapModuleobject GraphDumpBootstrapModuleclass AutoSetModuleclass BootstrapPluginDef[T]class LogstageModuletrait ModuleDefclass AppConfigModuletrait ConfigModuleDeftrait ConfigModuleDefNoMetaclass CassandraDockerModule[F]class ElasticMQDockerModule[F]class PostgresDockerModule[F]class DockerSupportModule[F]class DistagePlatformModuleobject LogstageFailureHandlerModuletrait CatsIOSupportModuleobject CatsIOSupportModuletrait IdentitySupportModuleobject IdentitySupportModuleclass ZIOCatsEffectInstancesModule[R]class PluginDef[T]class BundledRolesModule[F]trait RoleModuleDefclass RoleAppBootArgsModuleclass RoleAppBootConfigModuleclass RoleAppBootLoggerModuleclass RoleAppBootModule[F]class TestRuntimeModule[F]class TestkitRunnerModule[F]class LogIOModule[F]class LogIO2Module[F]class LogIO3Module[F]Show all
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
In this article