DependencyResolver

Resolves dependency graph with multiple configurations per package.

The term "configuration" can mean any kind of alternative dependency configuration of a package. In particular, it can mean different versions of a package.

CONFIG is an abstract type denoting a single configuration of a certain package, whereas CONFIGS denotes a set of configurations. The representation of both can be freely chosen, so that CONFIGS for example can be defined in terms of a version range.

Constructors

this
this(ulong limit)

Construct an instance of this class

this
deprecated this()

Compatibility overload

Members

Classes

DependencyLoadException
class DependencyLoadException
Undocumented in source.
ResolveException
class ResolveException
Undocumented in source.

Functions

getAllConfigs
CONFIG[] getAllConfigs(PackageName pack)
Undocumented in source.
getChildren
TreeNodes[] getChildren(TreeNode node)
Undocumented in source.
getSpecificConfigs
CONFIG[] getSpecificConfigs(PackageName pack, TreeNodes nodes)
Undocumented in source.
matches
bool matches(CONFIGS configs, CONFIG config)
Undocumented in source.
resolve
CONFIG[PackageName] resolve(TreeNode root, bool throw_on_failure)
Undocumented in source. Be warned that the author may not have intended to support it.

Structs

TreeNode
struct TreeNode

A single node in the dependency graph.

TreeNodes
struct TreeNodes

Encapsulates a list of outgoing edges in the dependency graph.

Variables

loop_limit
ulong loop_limit;

Maximum number of loop rounds to do

Meta