namespace MfGames.Nitride.Pipelines;
///
/// Describes the state of the pipelines which is used both for reporting
/// purposes but also to allow the pipelines to respond to changes in their
/// own state, such as unloading output elements.
///
public enum PipelineRunnerState
{
///
/// Indicates that the runner is setting up and not ready for any use.
///
Initializing,
///
/// Indicates that the runner has been initialized.
///
Initialized,
///
/// Indicates that the pipeline is prepare for a new run. This is done
/// when the system determines it needs to run.
///
Preparing,
///
/// Indicates that the pipeline has finished preparing.
///
Prepared,
///
/// Indicates that the runner is waiting for dependencies to run.
///
Waiting,
///
/// Indicates that the pipeline has started processing by a call to
/// `RunAsync`.
///
Started,
///
/// Indicates that the pipeline is providing data to any dependencies.
/// If the pipeline has no dependencies, then this will never be called.
///
Providing,
///
/// Indicates that all the dependencies on this pipeline has finished
/// running (state `Finished`) and the pipeline can clean up any
/// memory elements.
///
Provided,
///
/// Indicates that the pipeline is done running and the system is
/// shutting down.
///
Finalizing,
///
/// Indicates that the pipeline has been completely cleaned up and
/// finished. It will never be used again.
///
Finalized,
///
/// Indicates that there was an error while running the pipeline.
///
Errored,
}