#stdio #file #pattern #utilities #unix #file-input #stdout

stdinout

文件或 stdin/stdout 的简单包装器

6 个版本 (3 个重大变更)

0.4.1 2020年3月24日
0.4.0 2017年9月26日
0.3.1 2017年4月6日
0.3.0 2017年2月12日
0.1.0 2016年11月19日

#10 in #file-input

Download history 68/week @ 2024-03-11 66/week @ 2024-03-18 61/week @ 2024-03-25 121/week @ 2024-04-01 39/week @ 2024-04-08 56/week @ 2024-04-15 67/week @ 2024-04-22 61/week @ 2024-04-29 51/week @ 2024-05-06 63/week @ 2024-05-13 64/week @ 2024-05-20 58/week @ 2024-05-27 53/week @ 2024-06-03 39/week @ 2024-06-10 46/week @ 2024-06-17 49/week @ 2024-06-24

每月下载量 191 次
用于 12 个 crate

Apache-2.0 协议

7KB
100

简介

UNIX 工具中经常出现的一种模式是

  • 当提供了文件名参数时,你想从文件中读取,否则从 stdin 读取。
  • 当提供了文件名参数时,你想将内容写入文件,否则写入 stdout。

这是一个适应这种模式的轻量级 crate。

注意: 此包尚为新品,其 API 可能会更改。

安装

此包可以使用 Cargo 使用

[dependencies]
stdinout = 0.1

lib.rs:

编写命令行工具时经常出现的一种模式是,当提供了文件名参数时,希望打开文件,否则从 stdin/stdout 读写。不幸的是,在 Rust 中,这比应该做的要复杂。

stdinout crate 提供了一个小型包装器,使得处理这种情况更加容易。

用于从文件或标准输入读取

let input = Input::from(matches.free.get(0));
let reader = or_exit(input.buf_read());

for line in reader.lines() {
    // Use 'line'
}

用于向文件或标准输出写入

let output = Output::from(args.get(1));

// Get an object that implements the Write trait.
let write = output.write().unwrap();

无运行时依赖