Asynchronous anonymous pipe for Windows.
Note that we specifically do not use
CreatePipe
here because unfortunately the anonymous pipes returned do not support overlapped operations. Instead, we create a "hopefully unique" name and create a named pipe which has overlapped operations enabled.
x86_64-pc-windows-msvc
only
```rust use tokio::io::{AsyncReadExt, AsyncWriteExt};
async fn main() -> anyhow::Result<()> { let (mut r, mut w) = tokioanonpipe::anon_pipe().await?;
w.write_all(b"HELLO, WORLD!").await?;
let mut buf = [0; 16];
let len = r.read(&mut buf[..]).await?;
assert_eq!(&buf[..len], &b"HELLO, WORLD!"[..]);
Ok(())
} ```
License: MIT/Apache-2.0