1use std::path::PathBuf;
2
3use clap::{Parser, ValueEnum};
4use log::LevelFilter;
5
6#[derive(Parser, Debug)]
7#[command(author, version, about)]
8pub struct Cli {
9 #[arg(short, long, value_name = "FILE")]
10 pub input_file: PathBuf,
11 #[arg(short, long, value_name = "FOLDER")]
12 pub solution_folder: PathBuf,
13 #[arg(short, long, value_name = "FILE")]
14 pub config_file: Option<PathBuf>,
15 #[arg(
16 short,
17 long,
18 value_name = "[off, error, warn, info, debug, trace]",
19 default_value = "info"
20 )]
21 pub log_level: LevelFilter,
22 #[arg(short, long, value_enum, value_name = "TYPE OF PROBLEM")]
23 pub prob_var: ProblemVariant,
24}
25
26#[derive(ValueEnum, Debug, Clone)]
27pub enum ProblemVariant {
28 #[clap(name = "bpp")]
29 BinPackingProblem,
30 #[clap(name = "spp")]
31 StripPackingProblem,
32}