1 个不稳定版本
0.1.0 | 2023年1月12日 |
---|
#64 in #input-output
234 每月下载量
11KB
231 行代码(不包括注释)
clap-io
使用 clap 轻松为 CLIs 添加 --input
和 --output
标志
示例
cargo run --example copy -- --help
许可证
版权所有 © 2023 Swift Navigation
在 MIT 开源许可证 下分发。
lib.rs
:
为 clap 命令添加可选的 --input
和 --output
标志。如果未指定 --input
,则默认为(锁定)stdin。如果未指定 --output
,则默认为(锁定)stdout。
示例
添加获取 --input
和 --output
标志到您的程序中
use clap::Parser;
use clap_io::InputOutput;
#[derive(Parser)]
struct Cli {
#[clap(flatten)]
io: InputOutput,
}
let cli = Cli::parse();
let mut input = cli.io.input.open().unwrap();
let mut output = cli.io.output.open().unwrap();
std::io::copy(&mut input, &mut output).unwrap();
只添加一个
use clap::Parser;
use clap_io::Input;
#[derive(Parser)]
struct Cli {
#[clap(long = "in")]
input: Input,
}
let cli = Cli::parse();
eprintln!("is tty? {}", cli.input.is_tty());
eprintln!("path? {:?}", cli.input.path());
依赖
~1.2–2MB
~36K SLoC