Exposes a utility function to reduce boilerplate for reading from stdin. # Yes ```rust use std::io::Result; use stdinix::stdinix; fn main() -> Result<()> { stdinix(|buf| { println!("{}", buf.rev().collect()); Ok(()) }) } ``` # No ```rust use std::io::Result; fn main() -> Result<()> { let mut buf = String::new(); while let Ok(true) = { buf.clear(); std::io::stdin().read_line(&mut buf).map(|l| l > 0) } { println!("{}", buf.rev().collect()); } Ok(()) } ``` # Async ```rust use std::io::Result; #[tokio::main] async fn main() -> Result<()> { let context = vec![0, 3]; astdinix(move |line| { let context = context.clone(); async move { println!("{} {}", line.bytes().nth(context[0]).unwrap(), line.bytes().nth(context[1]).unwrap()); Ok(()) } }) .await } ```