use clap::Parser; #[derive(Debug, Parser)] #[command(version)] pub struct Args { /// User Agent to use for requests #[arg( short, default_value = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36" )] pub user_agent: String, /// Tags to search for #[arg(short, long)] pub tags: Option>, /// Page to start scraping from #[arg(short, long, default_value_t = 1)] pub page: usize, /// Async jobs to use for fetching #[arg(short, long, default_value_t = 4)] pub jobs: usize, /// Delay for rate-limits (ms) #[arg(short, long, default_value = "1000", value_parser = parse_duration)] pub delay: std::time::Duration, } fn parse_duration(arg: &str) -> Result { let seconds = arg.parse()?; Ok(std::time::Duration::from_millis(seconds)) }