1 个不稳定版本

0.1.0 2023年1月12日

#64 in #input-output

Download history • Rust 包仓库 23/week @ 2024-03-11 • Rust 包仓库 8/week @ 2024-03-18 • Rust 包仓库 32/week @ 2024-03-25 • Rust 包仓库 38/week @ 2024-04-01 • Rust 包仓库 5/week @ 2024-04-08 • Rust 包仓库 9/week @ 2024-04-22 • Rust 包仓库 63/week @ 2024-04-29 • Rust 包仓库 73/week @ 2024-05-06 • Rust 包仓库 17/week @ 2024-05-13 • Rust 包仓库 19/week @ 2024-05-20 • Rust 包仓库 56/week @ 2024-05-27 • Rust 包仓库 38/week @ 2024-06-03 • Rust 包仓库 100/week @ 2024-06-10 • Rust 包仓库 61/week @ 2024-06-17 • Rust 包仓库 34/week @ 2024-06-24 • Rust 包仓库

234 每月下载量

MIT 许可证

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