use rustyrs::{combinations, random_slugs, GeneralException};
use clap::Parser;
#[derive(Parser, Debug)]
#[command(version, about, long_about = None)]
struct RustyrsArgs{
#[arg(short, long, default_value_t = 2)]
num_words: i32,
#[arg(short = 's', long, default_value_t = 1)]
num_slugs: i32
}
fn main() -> Result<(), GeneralException> {
let args = RustyrsArgs::parse();
let phrases = random_slugs(
args.num_words, Some(args.num_slugs)
);
match phrases {
Ok(ps) => {
for p in ps {
println!("{}", p)
};
Ok(())
},
Err(e) => {
match e.clone() {
GeneralException::NoMoreUniqueCombinations => print!(
"Requested more outputs than possible unique combinations. Max for {}-word slugs: {}\n",
args.num_words, combinations(args.num_words).expect("Invalid number of words - must be between 1 and 5")
),
er => println!("{}", String::from(er))
};
Err(e)
}
}
}