use clap::Parser;
#[derive(Parser, Debug)]
#[command(name = "Toster", version, about = "A simple-as-toast tester for C++ solutions to competitive programming exercises\nReport issues on the bugtracker at https://github.com/MikolajKolek/toster/issues", long_about = None)]
pub struct Args {
#[clap(short, long, value_parser, default_value = "in")]
pub r#in: String,
#[clap(long, value_parser, default_value = ".in")]
pub in_ext: String,
#[clap(short, long, value_parser, default_value = "out")]
pub out: String,
#[clap(long, value_parser, default_value = ".out")]
pub out_ext: String,
#[clap(long, value_parser)]
pub io: Option<String>,
#[clap(short, long, value_parser, default_value = "5")]
pub timeout: u64,
#[clap(long, value_parser, default_value = "10")]
pub compile_timeout: u64,
#[clap(short, long, value_parser, default_value = "g++ -std=c++17 -O3 -static <IN> -o <OUT>")]
pub compile_command: String,
#[clap(short, long, action)]
pub generate: bool,
#[clap(value_parser)]
pub filename: String
}