lbf/io/
cli.rs

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}