DIPlanAssertionSyntax

izumi.distage.model.plan.Plan$.DIPlanAssertionSyntax
final implicit class DIPlanAssertionSyntax(plan: Plan) extends AnyVal

Attributes

Graph
Supertypes
class AnyVal
trait Matchable
class Any

Members list

Concise view

Value members

Concrete methods

Get all imports (unresolved dependencies).

Get all imports (unresolved dependencies).

Note, presence of imports does not always mean that a plan is invalid, imports may be fulfilled by a parent Locator, by BootstrapContext, or they may be materialized by a custom izumi.distage.model.provisioning.strategies.ImportStrategy

Attributes

See also:

distage.Injector#assert for a check you can use in tests

def incompatibleEffectType[F[_] : Tag]: Option[NonEmptyList[MonadicOp]]

Check for any make[_].fromEffect or make[_].fromResource bindings that are incompatible with the passed F.

Check for any make[_].fromEffect or make[_].fromResource bindings that are incompatible with the passed F.

An effect is compatible if it's a subtype of F or is a type equivalent to izumi.fundamentals.platform.functional.Identity (e.g. cats.Id)

Attributes

F

effect type to check against

Returns:

a non-empty list of operations incompatible with F if present

def unresolvedImports(ignoredImports: DIKey => Boolean): Option[NonEmptyList[ImportDependency]]

Check for any unresolved dependencies.

Check for any unresolved dependencies.

If this returns None then the wiring is generally correct, modulo runtime exceptions in user code, and Injector.produce should succeed.

However, presence of imports does not always mean that a plan is invalid, imports may be fulfilled by a parent Locator, by BootstrapContext, or they may be materialized by a custom izumi.distage.model.provisioning.strategies.ImportStrategy

Attributes

Returns:

a non-empty list of unresolved imports if present

See also:

distage.Injector#assert for a check you can use in tests