trait BootstrapModuleDef extends BootstrapModule with ModuleDefDSL
- Alphabetic
- By Inheritance
- BootstrapModuleDef
- ModuleDefDSL
- TagsDSL
- IncludesDSL
- AbstractBindingDefDSL
- FunctoidBindImplicitsVersionSpecific
- AbstractBindingDefDSLMacro
- BootstrapModule
- ModuleBase
- CachedHashcode
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
-   final  class MutationContext extends AnyRefUse this to create utility functions that add bindings mutably to the current module, as opposed to creating new modules and including them. 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] } - Definition Classes
- AbstractBindingDefDSL
 
Value Members
-   final  def !=(arg0: Any): Boolean- Definition Classes
- AnyRef → Any
 
-   final  def ##: Int- Definition Classes
- AnyRef → Any
 
-   final  def ==(arg0: Any): Boolean- Definition Classes
- AnyRef → Any
 
-    def _initialIncludes: ArrayBuffer[Include]- Attributes
- protected
- Definition Classes
- IncludesDSL
 
-    def _initialState: ArrayBuffer[BindingRef]- Attributes
- protected
- Definition Classes
- AbstractBindingDefDSL
 
-    def _initialTags: Set[BindingTag]- Attributes
- protected
- Definition Classes
- TagsDSL
 
-   final  def _make[T](provider: Functoid[T])(implicit arg0: Tag[T], pos: CodePositionMaterializer): MakeDSL[T]- Attributes
- protected
- Definition Classes
- AbstractBindingDefDSL
 
-    def _registered[T <: BindingRef](bindingRef: T): T- Attributes
- protected
- Definition Classes
- AbstractBindingDefDSL
 
-   final  def addImplicit[T](implicit arg0: Tag[T], instance: T, pos: CodePositionMaterializer): MakeDSLUnnamedAfterFrom[T]Same as make[T].fromValue(implicitly[T])*Same as make[T].fromValue(implicitly[T])*- Attributes
- protected
- Definition Classes
- AbstractBindingDefDSL
 
-   final  def asInstanceOf[T0]: T0- Definition Classes
- Any
 
-   final  def bindings: Set[Binding]- Definition Classes
- ModuleDefDSL
 
-    def clone(): AnyRef- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
 
-   final  def eq(arg0: AnyRef): Boolean- Definition Classes
- AnyRef
 
-   final  def equals(obj: Any): Boolean- Definition Classes
- ModuleBase → AnyRef → Any
 
-    def finalize(): Unit- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
 
-   final  def getClass(): Class[_ <: AnyRef]- Definition Classes
- AnyRef → Any
- Annotations
- @native()
 
-   final  def hash: Int- Attributes
- protected
- Definition Classes
- ModuleBase → CachedHashcode
 
-   final  lazy val hashCode: Int- Definition Classes
- CachedHashcode → AnyRef → Any
 
-   final  def include(that: ModuleBase, tagMergeStrategy: TagMergePolicy = TagMergePolicy.MergePreferInner): UnitAdd all bindings in thatmodule intothismoduleAdd all bindings in thatmodule intothismoduleWILL add outer tags / axis values from TagsDSL#tag to included bindings, unless they're overridden by tags / axis values in the included module. - Attributes
- protected
- Definition Classes
- IncludesDSL
 
-   final  def isInstanceOf[T0]: Boolean- Definition Classes
- Any
 
-   final  def iterator: Iterator[Binding]- Definition Classes
- ModuleDefDSL
 
-   final  def keys: Set[DIKey]- Definition Classes
- ModuleBase
 
-   final  def keysIterator: Iterator[DIKey]- Definition Classes
- ModuleDefDSL
 
-   final macro  def make[T]: MakeDSL[T]- Attributes
- protected
- Definition Classes
- AbstractBindingDefDSLMacro
 
-   final  def makeFactory[T](implicit arg0: Tag[T], arg1: FactoryConstructor[T]): MakeDSLUnnamedAfterFrom[T]- Attributes
- protected
- Definition Classes
- AbstractBindingDefDSL
- See also
 
-   final  def makeSubcontext[T](implicit arg0: Tag[T]): SubcontextDSL[T]- Attributes
- protected
- Definition Classes
- AbstractBindingDefDSL
- See also
 
-   final  def makeSubcontext[T](submodule: ModuleBase)(implicit arg0: Tag[T]): SubcontextDSL[T]- Attributes
- protected
- Definition Classes
- AbstractBindingDefDSL
- See also
 
-   final  def makeTrait[T](implicit arg0: Tag[T], arg1: TraitConstructor[T]): MakeDSLUnnamedAfterFrom[T]- Attributes
- protected
- Definition Classes
- AbstractBindingDefDSL
- See also
 
-   final  def many[T](implicit tag: Tag[Set[T]], pos: CodePositionMaterializer): SetDSL[T]Set bindings are useful for implementing event listeners, plugins, hooks, http routes, etc. Set bindings are useful for implementing event listeners, plugins, hooks, http routes, etc. To define a multibinding use .manyand.addmethods in ModuleDef DSL:import cats.effect._, org.http4s._, org.http4s.dsl.io._, scala.concurrent.ExecutionContext.Implicits.global import distage._ object HomeRouteModule extends ModuleDef { many[HttpRoutes[IO]].add { HttpRoutes.of[IO] { case GET -> Root / "home" => Ok(s"Home page!") } } } Set bindings defined in different modules will be merged together into a single Set. You can summon a created Set by type Set[T]:import cats.implicits._, org.http4s.server.blaze._, org.http4s.implicits._ object BlogRouteModule extends ModuleDef { many[HttpRoutes[IO]].add { HttpRoutes.of[IO] { case GET -> Root / "blog" / post => Ok("Blog post ``$post''!") } } } class HttpServer(routes: Set[HttpRoutes[IO]]) { val router = routes.foldK def serve = BlazeBuilder[IO] .bindHttp(8080, "localhost") .mountService(router, "/") .start } val objects = Injector().produce(HomeRouteModule ++ BlogRouteModule) val server = objects.get[HttpServer] val testRouter = server.router.orNotFound testRouter.run(Request[IO](uri = uri("/home"))).flatMap(_.as[String]).unsafeRunSync // Home page! testRouter.run(Request[IO](uri = uri("/blog/1"))).flatMap(_.as[String]).unsafeRunSync // Blog post ``1''! - Attributes
- protected
- Definition Classes
- AbstractBindingDefDSL
- See also
- Guice wiki on Multibindings: https://github.com/google/guice/wiki/Multibindings 
 
-   final  def modify[T]: ModifyDSL[T, MakeDSL, MakeDSLUnnamedAfterFrom, SetDSL]Modify a value bound at T.Modify a value bound at T. Modifiers stack and are all applied beforeTis added to the object graph; only the final instance is observable.import distage.{Injector, ModuleDef} Injector().produceGet[Int](new ModuleDef { make[Int].from(1) modify[Int](_ + 1) modify[Int](_ + 1) }).use(i => println(s"Got `Int` $i")) // Got `Int` 3 You can also modify while summoning additional dependencies: modify[Int]("named").by(_.flatAp { (adder: Adder, multiplier: Multiplier) => int: Int => multiplier.multiply(adder.add(int, 1), 10) }) - Attributes
- protected
- Definition Classes
- AbstractBindingDefDSL
 
-   implicit final  lazy val mutationContext: MutationContext- Attributes
- protected
- Definition Classes
- AbstractBindingDefDSL
 
-   final  def ne(arg0: AnyRef): Boolean- Definition Classes
- AnyRef
 
-   final  def notify(): Unit- Definition Classes
- AnyRef
- Annotations
- @native()
 
-   final  def notifyAll(): Unit- Definition Classes
- AnyRef
- Annotations
- @native()
 
-   final  def synchronized[T0](arg0: => T0): T0- Definition Classes
- AnyRef
 
-   final  def tag(tags: BindingTag*): UnitAdd tagsto all bindings in this module, except for included bindingsAdd tagsto all bindings in this module, except for included bindings- Attributes
- protected
- Definition Classes
- TagsDSL
 
-   final  def toString(): String- Definition Classes
- ModuleBase → AnyRef → Any
 
-   final  def todo[T](implicit arg0: Tag[T], pos: CodePositionMaterializer): MakeDSLUnnamedAfterFrom[T]Create a dummy binding that throws an exception with an error message when it's created. Create a dummy binding that throws an exception with an error message when it's created. Useful for prototyping. - Attributes
- protected
- Definition Classes
- AbstractBindingDefDSL
 
-   final  def wait(): Unit- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
 
-   final  def wait(arg0: Long, arg1: Int): Unit- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
 
-   final  def wait(arg0: Long): Unit- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
 
Deprecated Value Members
-   final  def includeApplyTags(that: ModuleBase): Unit- Attributes
- protected
- Definition Classes
- IncludesDSL
- Annotations
- @deprecated
- Deprecated
- (Since version 1.2.9) Outer module's tags are now added to included module by default, use regular - include