use clap::{Parser, Subcommand}; /// A helper for selecting which videos to download from ytcc to ytc #[derive(Parser, Debug)] #[clap(author, version, about, long_about = None)] pub struct Args { #[command(subcommand)] /// subcommand to execute pub subcommand: Option, } #[derive(Subcommand, Debug)] pub enum Command { #[clap(value_parser)] /// Which ordering to use Order { #[command(subcommand)] command: OrderCommand, }, } #[derive(Subcommand, Debug)] pub enum OrderCommand { #[clap(value_parser)] /// Order by date #[group(required = true)] Date { #[arg(value_parser)] /// Order descending desc: bool, #[clap(value_parser)] /// Order ascending asc: bool, }, #[clap(value_parser)] /// Pass a raw SQL 'ORDER BY' value Raw { #[clap(value_parser)] /// The raw value(s) to pass value: Vec, }, }