| 12345678910111213141516171819202122232425262728293031323334353637 |
- use std::ffi::OsString;
- use clap::Parser;
- use clap::ValueEnum;
- #[derive(Parser, Debug)]
- #[command(version, about, long_about = None)]
- pub struct Args {
- /// input file
- pub input_file: OsString,
- /// output file
- pub output_file: Option<OsString>,
- /// Whether to compress or extract.
- #[arg(short, value_enum, default_value = Mode::C)]
- pub mode: Mode,
- }
- #[derive(Clone, Copy, Debug, ValueEnum, Default)]
- pub enum Mode {
- /// Extract
- X,
- #[default]
- /// Compress
- C,
- }
- impl Into<clap::builder::OsStr> for Mode {
- fn into(self) -> clap::builder::OsStr {
- match self {
- Mode::X => clap::builder::OsStr::from("x"),
- Mode::C => clap::builder::OsStr::from("c"),
- }
- }
- }
|