diff options
Diffstat (limited to 'src/opt.rs')
-rw-r--r-- | src/opt.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/opt.rs b/src/opt.rs new file mode 100644 index 0000000..3548127 --- /dev/null +++ b/src/opt.rs @@ -0,0 +1,32 @@ +use std::path::PathBuf; +use structopt::StructOpt; + +use crate::choice::Choice; +use crate::config::Config; + +#[derive(Debug, StructOpt)] +#[structopt(name = "choose", about = "`choose` sections from each line of files")] +pub struct Opt { + /// Specify field separator other than whitespace + #[structopt(short, long)] + pub field_separator: Option<String>, + + /// Use exclusive ranges, similar to array slicing in many programming languages + #[structopt(short = "x", long)] + pub exclusive: bool, + + /// Activate debug mode + #[structopt(short, long)] + pub debug: bool, + + /// Input file + #[structopt(short, long, parse(from_os_str))] + pub input: Option<PathBuf>, + + /// Fields to print. Either x, x:, :y, or x:y, where x and y are integers, colons indicate a + /// range, and an empty field on either side of the colon continues to the beginning or end of + /// the line. + #[structopt(required = true, min_values = 1, parse(try_from_str = Config::parse_choice))] + pub choice: Vec<Choice>, +} + |