1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//! 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`:
//!
//! ```toml
//! [dependencies]
//! clap-file = "0.2.0"
//! ```
//!
//! # Examples
//!
//! Example usage of [`Input`] ans [`Output`] types:
//!
//! ```rust,no_run
//! use std::io::{self, BufRead as _, Write as _};
//!
//! use clap::Parser as _;
//! use clap_file::{Input, Output};
//!
//! #[derive(Debug, clap::Parser)]
//! 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(())
//! }
//! ```
pub use ;