pub struct ParallelPipeline { /* private fields */ }Expand description
A fan-out / fan-in block of parallel Pipeline branches
(PROCESSOR-DESIGN §3.2). Itself a FrameProcessor (so it nests).
Implementations§
Trait Implementations§
Source§impl FrameProcessor for ParallelPipeline
impl FrameProcessor for ParallelPipeline
Source§fn name(&self) -> &str
fn name(&self) -> &str
Stable, human-readable name (observer events, error attribution, tracing).
Source§fn start<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
_setup: &'life1 ProcessorSetup,
_params: &'life2 StartParams,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn start<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
_setup: &'life1 ProcessorSetup,
_params: &'life2 StartParams,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called once when the
Frame::Start frame reaches this processor, before
any data frame. Open sockets / spawn provider readers here. Default: no-op.Source§fn process_frame<'life0, 'life1, 'async_trait>(
&'life0 mut self,
env: Envelope,
link: &'life1 Link,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn process_frame<'life0, 'life1, 'async_trait>(
&'life0 mut self,
env: Envelope,
link: &'life1 Link,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Handle one frame. Push results via
link. Must not block: long work
(a provider round-trip) is driven by an internally-spawned task that feeds
results back as frames. The default impl forwards the frame unchanged in
its direction — so a pure observer/no-op processor is process_frame =
default.Source§fn stop<'life0, 'async_trait>(
&'life0 mut self,
_reason: StopReason,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn stop<'life0, 'async_trait>(
&'life0 mut self,
_reason: StopReason,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Called on
End/Stop/Cancel after the terminal frame is forwarded.
Flush + close. Default: no-op.Source§fn can_generate_metrics(&self) -> bool
fn can_generate_metrics(&self) -> bool
Whether this processor produces metrics (pipecat
can_generate_metrics,
:395). Services override to true.Auto Trait Implementations§
impl !RefUnwindSafe for ParallelPipeline
impl !Sync for ParallelPipeline
impl !UnwindSafe for ParallelPipeline
impl Freeze for ParallelPipeline
impl Send for ParallelPipeline
impl Unpin for ParallelPipeline
impl UnsafeUnpin for ParallelPipeline
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
Mutably borrows from an owned value. Read more