SemigraphSolver

izumi.distage.planning.solver.SemigraphSolver
See theSemigraphSolver companion object
trait SemigraphSolver[N, I, V]

Combined Garbage Collector, Conflict Resolver and Mutation Resolver

Traces the graph from the roots, solves the conflicts just in time by applying the axis rules, and orders mutators in sane and predictable order.

"predecessor" stands for "a node which should be processed before its successor".

Map of predecessors is a map where the key is a dependent and the value is a set of all its direct dependencies

Attributes

Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class SemigraphSolverImpl[N, I, V]

Members list

Value members

Abstract methods

def resolve(predecessors: SemiEdgeSeq[Annotated[N], N, V], roots: Set[N], activations: Set[AxisPoint], weak: Set[WeakEdge[N]]): Either[NEList[ConflictResolutionError[N, V]], Resolution[N, V]]