public StartElement( TContext context, TInput input, IAsyncStepProvider <TContext, TInput, TReturn> provider) : base(context, Enumerable.Empty <IPipeElement>(), provider) { Input = input; }
public FinalElement( TContext context, IEnumerable <IPipeElement> previousElements, IAsyncStepProvider <TContext, TInput?, TReturn> provider) { Context = context; PreviousElements = previousElements; AsyncProvider = provider; }
public static IPipeElement <TContext, TInputForNextStep, TReturn> DoNext <TContext, TInput, TInputForNextStep, TReturn>( this IPipeElement <TContext, TInput, TInputForNextStep> element, IAsyncStepProvider <TContext, TInputForNextStep, TReturn> provider) where TContext : PipeContext { return(new Element <TContext, TInputForNextStep, TReturn>( element.Context, element.PreviousElements.Append(element), provider)); }