v0.2.3
Support writing to process
#[tokio::main]
async fn main() -> io::Result<()> {
let mut process: Process = Process::new("sort");
// Set stdin (by default is set to null)
process.stdin(Stdio::piped());
// Get Stream;
let mut stream = process.spawn_and_stream().unwrap();
// Get writer from stdin;
let mut writer = process.take_stdin().unwrap();
// Spawn new async task and move stream to it
let reader_thread = tokio::spawn(async move {
while let Some(output) = stream.next().await {
if output.is_exit() {
println!("DONE")
} else {
println!("{output}")
}
}
});
// Spawn new async task and move writer to it
let writer_thread = tokio::spawn(async move {
writer.write(b"b\nc\na\n").await.unwrap();
writer.write(b"f\ne\nd\n").await.unwrap();
});
// Wait till all threads finish
writer_thread.await.unwrap();
reader_thread.await.unwrap();
Ok(())
}
Full Changelog: v0.2.2...v0.2.3