2 unstable releases
0.2.0 | Sep 22, 2024 |
---|---|
0.1.0 | Sep 22, 2024 |
#409 in Command-line interface
25 downloads per month
23KB
321 lines
clap-file
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.
Usage
Run cargo add clap-file
or add this to your Cargo.toml
:
[dependencies]
clap-file = "0.2.0"
Examples
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(())
}
Minimum supported Rust version (MSRV)
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.
License
This project is licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
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.