MutationContext

izumi.distage.model.definition.dsl.AbstractBindingDefDSL.MutationContext
final class MutationContext

Use this to create utility functions that add bindings mutably to the current module, as opposed to creating new modules and including them.

Example:

 import distage.{ClassConstructor, Tag, ModuleDef}
 import izumi.distage.model.definition.dsl.ModuleDefDSL

 trait RegisteredComponent
 class RegisteredComponentImpl extends RegisteredComponent

 def addAndRegister[T <: RegisteredComponent: Tag: ClassConstructor](implicit mutateModule: ModuleDefDSL#MutationContext): Unit = {
   new mutateModule.dsl {
     make[T]

     many[RegisteredComponent]
       .weak[T]
   }
 }

 new ModuleDef {
   addAndRegister[RegisteredComponentImpl]
 }

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Concise view

Type members

Classlikes

abstract class dsl extends AbstractBindingDefDSLMacro[BindDSL]

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any