codact 0.1.1

solutions to advent of code
Documentation
use std::{error::Error, io};

use clap::{CommandFactory, Parser};
use clap_mangen::Man;
use codact::{cli::Cli, event, solution};

fn main() -> Result<(), Box<dyn Error + Send + Sync + 'static>> {
    let cli = Cli::parse();

    if let Some(generator) = cli.completion {
        clap_complete::CompleteEnv::with_factory(Cli::command)
            .completer("exhaustive")
            .complete();
        let mut cmd = Cli::command();
        Cli::print_completion(generator, &mut cmd);
        return Ok(());
    }

    if cli.man.is_some() {
        Man::new(Cli::command()).render(&mut io::stdout())?;
        return Ok(());
    }

    match (cli.year, cli.day) {
        (event::Year::Y2015, event::Day::D1) => solution::y2025_d1::answer(),
        _ => println!("Not yet solved"),
    }

    Ok(())
}