NoCycles

izumi.distage.model.Injector.NoCycles
object NoCycles

Disable all cycle resolution, immediately throw when circular dependencies are found, whether by-name or not

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
NoCycles.type

Members list

Value members

Inherited methods

final override def apply[F[_] : QuasiIO : TagK : DefaultModule](parent: Option[Locator], bootstrapBase: BootstrapContextModule, bootstrapActivation: Activation, bootstrapOverrides: Seq[BootstrapModule], locatorPrivacy: LocatorPrivacy, bootstrapRootsMode: BootstrapRootsMode): Injector[F]

Create a new Injector

Create a new Injector

Type parameters

F

The effect type to use for effect and resource bindings and the result of izumi.distage.model.Injector#produce

Value parameters

bootstrapActivation

A map of axes of configuration to choices along these axes for the bootstrap environment. The passed activation will affect only the bootstrapping of the Injector itself (see izumi.distage.bootstrap.BootstrapLocator). To set activation choices for subsequent injections, pass Activation to the methods of the created Injector

bootstrapBase

Initial bootstrap context module, such as izumi.distage.bootstrap.BootstrapLocator.defaultBootstrap

bootstrapOverrides

Overrides of Injector's own bootstrap environment - injector itself is constructed with DI. They can be used to customize the Injector, e.g. by adding members to izumi.distage.model.planning.PlanningHook Set.

parent

If set, this locator will be used as parent for the bootstrap locator. Use this parameter if you want to reuse components from another injection BUT also want to recreate the bootstrap environment with new parameters. If you just want to reuse all components, including the bootstrap environment, use inherit

Attributes

Definition Classes
InjectorBootstrap -> InjectorFactory
Inherited from:
InjectorBootstrap (hidden)
def bootloader[F[_]](bootstrapModule: BootstrapModule, bootstrapActivation: Activation, defaultModule: DefaultModule[F], input: PlannerInput): Bootloader

Attributes

Inherited from:
InjectorFactory
final override protected def defaultBootstrap: BootstrapContextModule

Attributes

Definition Classes
InjectorBootstrap -> InjectorFactory
Inherited from:
InjectorBootstrap (hidden)
final override protected def defaultBootstrapActivation: Activation

Attributes

Definition Classes
InjectorBootstrap -> InjectorFactory
Inherited from:
InjectorBootstrap (hidden)

Attributes

Definition Classes
InjectorBootstrap -> InjectorFactory
Inherited from:
InjectorBootstrap (hidden)

Attributes

Definition Classes
InjectorBootstrap -> InjectorFactory
Inherited from:
InjectorBootstrap (hidden)
final override def inherit[F[_] : QuasiIO : TagK](parent: Locator): Injector[F]

Create a new injector inheriting configuration, hooks and the object graph from a previous injection.

Create a new injector inheriting configuration, hooks and the object graph from a previous injection.

Type parameters

F

the effect type to use for effect and resource bindings and the result of izumi.distage.model.Injector#produce

Value parameters

parent

Instances from parent izumi.distage.model.Locator will be available as imports in new Injector's produce

Attributes

Definition Classes
InjectorBootstrap -> InjectorFactory
Inherited from:
InjectorBootstrap (hidden)
final override def inheritWithNewDefaultModule[F[_] : QuasiIO : TagK](parent: Locator, defaultModule: DefaultModule[F]): Injector[F]

Create a new injector inheriting configuration, hooks and the object graph from a previous injection.

Create a new injector inheriting configuration, hooks and the object graph from a previous injection.

Unlike inherit this will fully (re)create the defaultModule in subsequent injections, without reusing the existing instances in parent.

Type parameters

F

the effect type to use for effect and resource bindings and the result of izumi.distage.model.Injector#produce

Value parameters

parent

Instances from parent izumi.distage.model.Locator will be available as imports in new Injector's produce

Attributes

Definition Classes
InjectorBootstrap -> InjectorFactory
Inherited from:
InjectorBootstrap (hidden)
override def providedKeys[F[_] : DefaultModule](bootstrapBase: BootstrapContextModule, bootstrapOverrides: BootstrapModule*): Set[DIKey]

Attributes

Definition Classes
InjectorBootstrap -> InjectorFactory
Inherited from:
InjectorBootstrap (hidden)
override def providedKeys[F[_] : DefaultModule](bootstrapOverrides: BootstrapModule*): Set[DIKey]

Keys summonable by default in DI, including those added additionally by izumi.distage.modules.DefaultModule

Keys summonable by default in DI, including those added additionally by izumi.distage.modules.DefaultModule

Attributes

Definition Classes
InjectorBootstrap -> InjectorFactory
Inherited from:
InjectorBootstrap (hidden)
final def withoutDefaultModule[F[_] : QuasiIO : TagK](parent: Option[Locator] = ..., bootstrapBase: BootstrapContextModule = ..., bootstrapActivation: Activation = ..., overrides: Seq[BootstrapModule] = ..., locatorPrivacy: LocatorPrivacy = ..., bootstrapRootsMode: BootstrapRootsMode = ...): Injector[F]

Alias for apply[F] that doesn't add a DefaultModule for F into bindings.

Alias for apply[F] that doesn't add a DefaultModule for F into bindings.

distage-core doesn't require bindings provided by DefaultModule, but some extensions, such as distage-framework-docker expect them to be defined

Attributes

Inherited from:
InjectorFactory