For my library, I want to replace async_std
by smol
, since the former has been deprecated in favor of the latter. This is mostly just a simple translation (different module structure, names etc.), but what I don’t know is how to replace async-std's stdin
. Anybody got a hint on that?
The readme for smol has an example for stdout. I assume stdin is the same:
let mut stdout = Unblock::new(std::io::stdout()); io::copy(stream, &mut stdout).await?;
And there is more information about how to use it for reading/writing on the Unblock docs.
Oh yeah, the docs even mention
Unblock<Stdin>
explicitely. Thanks a lot!
I’ve not looked too much into it, but it seems AsyncRead/AsyncBufRead (through IoSafe) is implemented for stdin. So i think you should be able to use it like that.
Yeah that looks fine, thanks! It would introduce a new dependency (
async_io
) though, so I might go withUnblock
mentioned above. Let’s see what happens when I try to make the switch :)(e) Ah I don’t think this really works, I’d need to wrap it in an
Async
, but the docs explicitely mention not to use that withStdin
: https://docs.rs/smol/latest/smol/struct.Async.html#supported-types.Unblock
it is then :)