#stdin #reduce-boilerplate #reading #utility #io

stdinix

简化从 stdin 读取的样板代码的实用函数

2 个不稳定版本

0.2.0 2022年9月13日
0.1.0 2020年2月9日

#10#reduce-boilerplate

每月49 次下载
用于 5 crates

MIT/Apache

3KB

提供了一组实用函数,用于简化从 stdin 读取时的样板代码。

use std::io::Result;
use stdinix::stdinix;

fn main() -> Result<()> {
    stdinix(|buf| {
        println!("{}", buf.rev().collect());

        Ok(())
    })
}

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(())
}

异步

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
}

无运行时依赖