# Packages
No description provided by the author
# Functions
DefaultMetrics returns a metrics implementation that performs no operations, but can be used for scenarios where metrics output isn't required.
Install is a convenience function for installing multiple manifolds into an Installer at once.
NewEngine returns an Engine that will maintain any installed Manifolds until either the engine is stopped or one of the manifolds' workers returns an error that satisfies isFatal.
SelfManifold returns a manifold exposing a running dependency engine's Installer and Reporter services.
Validate will return an error if the dependency graph defined by the supplied manifolds contains any cycles.
# Constants
ErrBounce can be returned by a StartFunc or a worker to indicate to the engine that it should be restarted immediately, instead of waiting for ErrorDelay.
ErrMissing can be returned by a StartFunc or a worker to indicate to the engine that it can't be usefully restarted until at least one of its dependencies changes.
ErrUninstall can be returned by a StartFunc or a worker to indicate to the engine that it can/should never run again, and that the originating manifold should be completely removed.
KeyError holds some relevant error.
KeyInputs holds the names of the manifolds on which this one depends.
KeyLastStart holds the time of when the worker was last started.
KeyManifolds holds a map of manifold name to further data (including dependency inputs; current worker state; and any relevant report/error for the associated current/recent worker.).
KeyName holds the name of some resource.
KeyReport holds an arbitrary map of information returned by a manifold Worker that is also a Reporter.
KeyStartCount holds the number of times the worker has been started.
KeyState applies to a worker; possible values are "starting", "started", "stopping", or "stopped".
KeyType holds a string representation of the type by which a resource was accessed.
# Structs
Engine maintains workers corresponding to its installed manifolds, and restarts them whenever their inputs change.
EngineConfig defines the parameters needed to create a new engine.
Manifold defines the behaviour of a node in an Engine's dependency graph.
# Interfaces
Clock defines the time methods needed for the engine.
Context represents the situation in which a StartFunc is running.
Installer exposes an Engine's Install method.
Logger represents the various logging methods used by the runner.
Metrics defines a type for recording the worker life cycle in the dependency engine.
Reporter defines an interface for extracting human-relevant information from a worker.
# Type aliases
FilterFunc is an error conversion function for errors returned from workers or StartFuncs.
IsFatalFunc is used to configure an Engine such that, if any worker returns an error that satisfies the engine's IsFatalFunc, the engine will stop all its workers, shut itself down, and return the original fatal error via Wait().
Manifolds conveniently represents several Manifolds.
OutputFunc is a type coercion function for a worker generated by a StartFunc.
StartFunc returns a worker or an error.
WorstErrorFunc is used to rank fatal errors, to allow an Engine to return the single most important error it's encountered.