libaoc is a library for easily creating AdventOfCode solutions in rust.
Go to file
2021-12-04 23:36:57 +01:00
libaoc allow trailing comma on run_days macro 2021-12-04 23:28:37 +01:00
libaoc-macros init 2021-12-04 23:24:26 +01:00
.gitignore init 2021-12-04 23:24:26 +01:00
Cargo.toml init 2021-12-04 23:24:26 +01:00
README.md add readme 2021-12-04 23:36:57 +01:00

libaoc

A library for writing very rusty AdventOfCode solutions with miette error handling.

Example

fn main() -> libaoc::miette::Result<()> {
    libaoc::run_days!(day1)
}

// This could also be a new file with #![...] at the start using nightly rust!
#[libaoc::day(1, "../input/day1.txt")]
mod day1 {
    use libaoc::miette::Result;

    fn part1() -> Result<()> {
        println!("Running part 1. My input is '{}'", INPUT);

        Ok(())
    }

    // This is optional.
    fn part2() -> Result<()> {
        println!("Running part 2. My input is '{}'", INPUT);

        Ok(())
    }
}

This gives the output

Running day 1...
--- Part 1 ---
Running part 1. My input is 'day 1 input file here!'

--- Part 2 ---
Running part 2. My input is 'day 1 input file here!'