Struct libherokubuildpack::buildpack_output::state::Stream
source · pub struct Stream<W: Write> { /* private fields */ }
Expand description
This state is intended for streaming output from a process to the end user. It is
started from a state::Section
and finished back to a state::Section
.
The BuildpackOutput<state::Stream<W>>
implements std::io::Write
, so you can stream
from anything that accepts a std::io::Write
.
use libherokubuildpack::buildpack_output::{BuildpackOutput, state::{Started, Section}};
use std::io::Write;
let mut output = BuildpackOutput::new(std::io::stdout())
.start("Example Buildpack")
.section("Ruby version");
install_ruby(output).finish();
fn install_ruby<W>(mut output: BuildpackOutput<Section<W>>) -> BuildpackOutput<Section<W>>
where W: Write + Send + Sync + 'static {
let mut stream = output.step("Installing Ruby")
.start_stream("Streaming stuff");
write!(&mut stream, "...").unwrap();
stream.finish()
}
Trait Implementations§
Auto Trait Implementations§
impl<W> Freeze for Stream<W>where
W: Freeze,
impl<W> !RefUnwindSafe for Stream<W>
impl<W> Send for Stream<W>where
W: Send,
impl<W> Sync for Stream<W>where
W: Sync,
impl<W> Unpin for Stream<W>where
W: Unpin,
impl<W> !UnwindSafe for Stream<W>
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