using System.Collections.Generic;
using System.Threading.Tasks;
using Gallium;
namespace Nitride.Pipelines;
///
/// Implements the basic signature for a pipeline, a distinct unit of
/// processing that reads, manipulates, and writes data.
///
public interface IPipeline
{
///
/// Gets the dependencies for the pipeline.
///
IEnumerable GetDependencies();
///
/// Performs various operations such as reading, writing, and
/// transformation on the given entities before returning a new
/// collection, which may or may not include some of the original
/// entities.
///
/// The entities to process.
/// The resulting entities after the process runs.
Task> RunAsync(IEnumerable entities);
}