Crates.io | clap-file |
lib.rs | clap-file |
version | 0.2.0 |
source | src |
created_at | 2024-09-22 06:48:07.48011 |
updated_at | 2024-09-22 10:26:28.91709 |
description | Provides types for clap's derive interface, enabling easy handling of input/output with automatically opened files or standard input/output based on command-line arguments. |
homepage | |
repository | https://github.com/gifnksm/clap-file |
max_upload_size | |
id | 1382774 |
size | 54,115 |
Provides types for clap’s derive interface, enabling easy handling of input/output with automatically opened files or standard input/output based on command-line arguments.
Run cargo add clap-file
or add this to your Cargo.toml
:
[dependencies]
clap-file = "0.2.0"
Example usage of Input
ans Output
types:
use std::io::{self, BufRead as _, Write as _};
use clap::Parser as _;
use clap_file::{Input, Output};
struct Args {
/// Input file. If not provided, reads from standard input.
input: Input,
/// output file. If not provided, reads from standard output.
output: Output,
}
fn main() -> io::Result<()> {
let args = Args::parse();
let input = args.input.lock();
let mut output = args.output.lock();
for line in input.lines() {
let line = line?;
writeln!(&mut output, "{line}")?;
}
Ok(())
}
The minimum supported Rust version is Rust 1.74.0. At least the last 3 versions of stable Rust are supported at any given time.
While a crate is a pre-release status (0.x.x) it may have its MSRV bumped in a patch release. Once a crate has reached 1.x, any MSRV bump will be accompanied by a new minor version.
This project is licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
See CONTRIBUTING.md.