use anyhow::{anyhow, Result}; use std::env; mod days; fn help() { println!("Usage: {} ", env!("CARGO_BIN_NAME")); } fn run_day(number: i32) -> Result<()> { match number { 1 => { days::day1::run()?; } 2 => { days::day2::run()?; } 3 => { days::day3::run()?; } 4 => { days::day4::run()?; } 5 => { days::day5::run()?; } 6 => { days::day6::run()?; } _ => return Err(anyhow!("Invalid day provided")), } Ok(()) } fn main() -> Result<()> { let args: Vec = env::args().collect(); match args.len() { 2 => { let number: i32 = match args[1].parse() { Ok(n) => n, Err(_) => { help(); return Err(anyhow!("Argument is not an integer")); } }; run_day(number)?; } _ => { help(); return Err(anyhow!("Invalid arguments provided")); } } Ok(()) }