use clap::Parser;
use clap_num::maybe_hex;
use rpmlx90640::ColorTypes;
#[derive(Parser, Debug)]
#[command(version, about, long_about = None)]
pub struct CliArgs {
#[arg(short = 'b', long)]
pub bus: Option<String>,
#[arg(short = 'a', long, value_parser=maybe_hex::<u8>)]
pub address: Option<u8>,
#[arg(short = 'i', long, value_parser = clap::value_parser!(u16).range(1..100))]
pub interpolation: Option<u16>,
#[arg(short = 'c', long)]
pub color: Option<ColorTypes>,
#[arg(long, default_value = "false")]
pub hflip: bool,
#[arg(long, default_value = "false")]
pub vflip: bool,
#[arg(long, default_value = "false")]
pub pois: bool,
#[arg(short = 'x', long)]
pub poix: Option<usize>,
#[arg(short = 'y', long)]
pub poiy: Option<usize>,
#[arg(long, default_value = "false")]
pub poic: bool,
#[arg(short = 'o', long)]
pub output: Option<String>,
#[arg(long, default_value = "false")]
pub json: bool,
}