1: <?php declare(strict_types=1);
2:
3: namespace Salient\Contract\Core\Pipeline;
4:
5: /**
6: * @api
7: *
8: * @template TInput
9: * @template TOutput
10: * @template TArgument
11: *
12: * @extends PayloadPipelineInterface<TInput,TOutput,TArgument>
13: */
14: interface EntityPipelineInterface extends PayloadPipelineInterface
15: {
16: /**
17: * Run the pipeline and return the result
18: *
19: * @return TOutput
20: */
21: public function run();
22:
23: /**
24: * Run the pipeline and pass the result to another pipeline
25: *
26: * @template TNextOutput
27: *
28: * @param PipelineInterface<TOutput,TNextOutput,TArgument> $next
29: * @return EntityPipelineInterface<TOutput,TNextOutput,TArgument>
30: */
31: public function runInto(PipelineInterface $next);
32: }
33: