This repository has been archived on 2023-02-02. You can view files and clone it, but cannot push or open issues or pull requests.
mfgames-nitride-cil/src/MfGames.Nitride/Pipelines/IPipeline.cs

28 lines
882 B
C#
Raw Normal View History

2021-09-07 05:15:45 +00:00
using System.Collections.Generic;
2022-09-06 05:53:22 +00:00
using MfGames.Gallium;
2021-09-07 05:15:45 +00:00
2022-09-06 05:53:22 +00:00
namespace MfGames.Nitride.Pipelines;
/// <summary>
/// Implements the basic signature for a pipeline, a distinct unit of
/// processing that reads, manipulates, and writes data.
/// </summary>
public interface IPipeline
2021-09-07 05:15:45 +00:00
{
/// <summary>
/// Gets the dependencies for the pipeline.
2021-09-07 05:15:45 +00:00
/// </summary>
IEnumerable<IPipeline> GetDependencies();
2021-09-07 05:15:45 +00:00
/// <summary>
/// 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.
/// </summary>
/// <param name="entities">The entities to process.</param>
/// <returns>The resulting entities after the process runs.</returns>
IAsyncEnumerable<Entity> RunAsync(IEnumerable<Entity> entities);
2021-09-07 05:15:45 +00:00
}