use futures::{
io::{AsyncReadExt, AsyncWriteExt},
try_join,
};
use interprocess::os::windows::named_pipe::tokio::*;
use std::error::Error;
pub async fn main() -> Result<(), Box<dyn Error>> {
let conn = DuplexBytePipeStream::connect("Example")?;
let (mut reader, mut writer) = conn.split();
let mut buffer = String::with_capacity(128);
let write = async {
writer.write_all(b"Hello from client!").await?;
writer.close().await?;
Ok(())
};
let read = reader.read_to_string(&mut buffer);
try_join!(write, read)?;
drop((reader, writer));
println!("Server answered: {}", buffer.trim());
Ok(())
}