pub struct PipelineRunner { /* private fields */ }Expand description
Runs pipelines by spawning tasks and connecting them via channels.
Implementations§
Source§impl PipelineRunner
impl PipelineRunner
Sourcepub fn new(tools: Arc<ToolRegistry>) -> Self
pub fn new(tools: Arc<ToolRegistry>) -> Self
Create a new pipeline runner with the given tool registry.
Sourcepub async fn run(
&self,
stages: &[PipelineStage],
ctx: &mut ExecContext,
dispatcher: &dyn CommandDispatcher,
) -> ExecResult
pub async fn run( &self, stages: &[PipelineStage], ctx: &mut ExecContext, dispatcher: &dyn CommandDispatcher, ) -> ExecResult
Execute a pipeline of commands.
Each command’s stdout becomes the next command’s stdin. If the pipeline contains scatter/gather, delegates to ScatterGatherRunner. Returns the result of the last command in the pipeline.
The dispatcher handles the full command resolution chain (user tools,
builtins, scripts, external commands, backend tools). The runner handles
I/O routing: stdin redirects, piping between commands, and output redirects.
Sourcepub async fn run_sequential(
&self,
commands: &[Command],
ctx: &mut ExecContext,
dispatcher: &dyn CommandDispatcher,
) -> ExecResult
pub async fn run_sequential( &self, commands: &[Command], ctx: &mut ExecContext, dispatcher: &dyn CommandDispatcher, ) -> ExecResult
Execute commands sequentially without scatter/gather detection.
Used by ScatterGatherRunner for pre_scatter, post_gather, and parallel
workers. Breaks the async recursion chain (run → scatter → run).
Trait Implementations§
Source§impl Clone for PipelineRunner
impl Clone for PipelineRunner
Source§fn clone(&self) -> PipelineRunner
fn clone(&self) -> PipelineRunner
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for PipelineRunner
impl !UnwindSafe for PipelineRunner
impl Freeze for PipelineRunner
impl Send for PipelineRunner
impl Sync for PipelineRunner
impl Unpin for PipelineRunner
impl UnsafeUnpin for PipelineRunner
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
impl<T> OrderedSeq<'_, T> for Twhere
T: Clone,
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<'p, T> Seq<'p, T> for Twhere
T: Clone,
impl<'p, T> Seq<'p, T> for Twhere
T: Clone,
Source§impl<T, S> SpanWrap<S> for Twhere
S: WrappingSpan<T>,
impl<T, S> SpanWrap<S> for Twhere
S: WrappingSpan<T>,
Source§fn with_span(self, span: S) -> <S as WrappingSpan<Self>>::Spanned
fn with_span(self, span: S) -> <S as WrappingSpan<Self>>::Spanned
WrappingSpan::make_wrapped to wrap an AST node in a span.