use clap::{command, Parser};
use crate::enums::{ColourSpace, ColourTransferCharacteristic};
#[derive(Debug, Clone)]
pub struct FrameResult {
pub frame: u32,
pub ssimulacra2: f64,
}
#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
pub struct Args {
#[arg(help = "Original unmodified image", value_hint = clap::ValueHint::FilePath)]
pub source: String,
#[arg(help = "Distorted image", value_hint = clap::ValueHint::FilePath)]
pub distorted: String,
#[arg(help = "Output folder or `.csv` file. Requires --folders", value_hint = clap::ValueHint::FilePath, requires = "folders")]
pub out: Option<String>,
#[arg(long, short)]
pub threads: Option<usize>,
#[arg(
short,
long,
help = "If input paths are folders, process all images in the folders. This assumes the files are named the same in both folders."
)]
pub folders: bool,
#[arg(long, value_enum, default_value_t = ColourSpace::BT709)]
pub colour_space: ColourSpace,
#[arg(long, value_enum, default_value_t = ColourTransferCharacteristic::SRGB)]
pub colour_transfer: ColourTransferCharacteristic,
}