private PipelineStatusArgs GetStatusArgs(IInitStep step)
 {
     return(new PipelineStatusArgs
     {
         CompletedStepName = step.Name,
         CompletedSteps = _completedSteps.Count,
         TotalSteps = _dependencyGraph.Size
     });
 }
        private IEnumerator RunStep(IInitStep step)
        {
            yield return(_runner.RunInCoroutine(step.Execute()));

            MarkComplete(step);

            var nextSteps = _dependencyGraph.GetDependents(step);

            RunSteps(nextSteps);
        }
        private bool IsReadyToExecute(IInitStep step)
        {
            var dependencies = _dependencyGraph.GetDependencies(step);

            return(dependencies.All(dep => _completedSteps.Contains(dep)));
        }
        private void MarkComplete(IInitStep step)
        {
            _completedSteps.Add(step);

            OnStepCompleted?.Invoke(this, GetStatusArgs(step));
        }