pub struct BroadcastOutputStream { /* private fields */ }Expand description
The output stream from a process. Either representing stdout or stderr.
This is the broadcast variant, allowing for multiple simultaneous consumers with the downside of inducing memory allocations not required when only one consumer is listening. For that case, prefer using the crate::output_stream::single_subscriber::SingleSubscriberOutputStream.
Implementations§
Source§impl BroadcastOutputStream
impl BroadcastOutputStream
Sourcepub fn inspect_chunks(
&self,
f: impl FnMut(Chunk) -> Next + Send + 'static,
) -> Inspector
pub fn inspect_chunks( &self, f: impl FnMut(Chunk) -> Next + Send + 'static, ) -> Inspector
Inspects chunks of output from the stream without storing them.
The provided closure is called for each chunk of data. Return Next::Continue to keep
processing or Next::Break to stop.
Sourcepub fn inspect_lines(
&self,
f: impl FnMut(Cow<'_, str>) -> Next + Send + 'static,
options: LineParsingOptions,
) -> Inspector
pub fn inspect_lines( &self, f: impl FnMut(Cow<'_, str>) -> Next + Send + 'static, options: LineParsingOptions, ) -> Inspector
Inspects lines of output from the stream without storing them.
The provided closure is called for each line. Return Next::Continue to keep
processing or Next::Break to stop.
Sourcepub fn inspect_lines_async<Fut>(
&self,
f: impl FnMut(Cow<'_, str>) -> Fut + Send + 'static,
options: LineParsingOptions,
) -> Inspector
pub fn inspect_lines_async<Fut>( &self, f: impl FnMut(Cow<'_, str>) -> Fut + Send + 'static, options: LineParsingOptions, ) -> Inspector
Inspects lines of output from the stream without storing them, using an async closure.
The provided async closure is called for each line. Return Next::Continue to keep
processing or Next::Break to stop.
Source§impl BroadcastOutputStream
impl BroadcastOutputStream
Sourcepub fn collect_chunks<S: Sink>(
&self,
into: S,
collect: impl FnMut(Chunk, &mut S) + Send + 'static,
) -> Collector<S>
pub fn collect_chunks<S: Sink>( &self, into: S, collect: impl FnMut(Chunk, &mut S) + Send + 'static, ) -> Collector<S>
Collects chunks from the stream into a sink.
The provided closure is called for each chunk, with mutable access to the sink.
Sourcepub fn collect_chunks_async<S, F>(&self, into: S, collect: F) -> Collector<S>
pub fn collect_chunks_async<S, F>(&self, into: S, collect: F) -> Collector<S>
Collects chunks from the stream into a sink using an async closure.
The provided async closure is called for each chunk, with mutable access to the sink.
Sourcepub fn collect_lines<S: Sink>(
&self,
into: S,
collect: impl FnMut(Cow<'_, str>, &mut S) -> Next + Send + 'static,
options: LineParsingOptions,
) -> Collector<S>
pub fn collect_lines<S: Sink>( &self, into: S, collect: impl FnMut(Cow<'_, str>, &mut S) -> Next + Send + 'static, options: LineParsingOptions, ) -> Collector<S>
Collects lines from the stream into a sink.
The provided closure is called for each line, with mutable access to the sink.
Return Next::Continue to keep processing or Next::Break to stop.
Sourcepub fn collect_lines_async<S, F>(
&self,
into: S,
collect: F,
options: LineParsingOptions,
) -> Collector<S>
pub fn collect_lines_async<S, F>( &self, into: S, collect: F, options: LineParsingOptions, ) -> Collector<S>
Collects lines from the stream into a sink using an async closure.
The provided async closure is called for each line, with mutable access to the sink.
Return Next::Continue to keep processing or Next::Break to stop.
Sourcepub fn collect_chunks_into_vec(&self) -> Collector<Vec<u8>>
pub fn collect_chunks_into_vec(&self) -> Collector<Vec<u8>>
Convenience method to collect all chunks into a Vec<u8>.
Sourcepub fn collect_lines_into_vec(
&self,
options: LineParsingOptions,
) -> Collector<Vec<String>>
pub fn collect_lines_into_vec( &self, options: LineParsingOptions, ) -> Collector<Vec<String>>
Convenience method to collect all lines into a Vec<String>.
Sourcepub fn collect_chunks_into_write<W: Sink + AsyncWriteExt + Unpin>(
&self,
write: W,
) -> Collector<W>
pub fn collect_chunks_into_write<W: Sink + AsyncWriteExt + Unpin>( &self, write: W, ) -> Collector<W>
Collects chunks into an async writer.
Sourcepub fn collect_lines_into_write<W: Sink + AsyncWriteExt + Unpin>(
&self,
write: W,
options: LineParsingOptions,
) -> Collector<W>
pub fn collect_lines_into_write<W: Sink + AsyncWriteExt + Unpin>( &self, write: W, options: LineParsingOptions, ) -> Collector<W>
Collects lines into an async writer.
Sourcepub fn collect_chunks_into_write_mapped<W: Sink + AsyncWriteExt + Unpin, B: AsRef<[u8]> + Send>(
&self,
write: W,
mapper: impl Fn(Chunk) -> B + Send + Sync + Copy + 'static,
) -> Collector<W>
pub fn collect_chunks_into_write_mapped<W: Sink + AsyncWriteExt + Unpin, B: AsRef<[u8]> + Send>( &self, write: W, mapper: impl Fn(Chunk) -> B + Send + Sync + Copy + 'static, ) -> Collector<W>
Collects chunks into an async writer after mapping them with the provided function.
Sourcepub fn collect_lines_into_write_mapped<W: Sink + AsyncWriteExt + Unpin, B: AsRef<[u8]> + Send>(
&self,
write: W,
mapper: impl Fn(Cow<'_, str>) -> B + Send + Sync + Copy + 'static,
options: LineParsingOptions,
) -> Collector<W>
pub fn collect_lines_into_write_mapped<W: Sink + AsyncWriteExt + Unpin, B: AsRef<[u8]> + Send>( &self, write: W, mapper: impl Fn(Cow<'_, str>) -> B + Send + Sync + Copy + 'static, options: LineParsingOptions, ) -> Collector<W>
Collects lines into an async writer after mapping them with the provided function.
Source§impl BroadcastOutputStream
impl BroadcastOutputStream
Sourcepub async fn wait_for_line(
&self,
predicate: impl Fn(Cow<'_, str>) -> bool + Send + Sync + 'static,
options: LineParsingOptions,
) -> Result<(), InspectorError>
pub async fn wait_for_line( &self, predicate: impl Fn(Cow<'_, str>) -> bool + Send + Sync + 'static, options: LineParsingOptions, ) -> Result<(), InspectorError>
Waits for a line that matches the given predicate.
This method blocks until a line is found that satisfies the predicate.
Sourcepub async fn wait_for_line_with_timeout(
&self,
predicate: impl Fn(Cow<'_, str>) -> bool + Send + Sync + 'static,
options: LineParsingOptions,
timeout: Duration,
) -> Result<(), OutputError>
pub async fn wait_for_line_with_timeout( &self, predicate: impl Fn(Cow<'_, str>) -> bool + Send + Sync + 'static, options: LineParsingOptions, timeout: Duration, ) -> Result<(), OutputError>
Waits for a line that matches the given predicate, with a timeout.
Returns Ok(()) if a matching line is found, or Err(OutputError::Timeout) if the timeout expires.
Trait Implementations§
Source§impl Debug for BroadcastOutputStream
impl Debug for BroadcastOutputStream
Source§impl Drop for BroadcastOutputStream
impl Drop for BroadcastOutputStream
Source§impl OutputStream for BroadcastOutputStream
impl OutputStream for BroadcastOutputStream
Source§fn chunk_size(&self) -> NumBytes
fn chunk_size(&self) -> NumBytes
stream_reader.