My Advent of Code solutions
Find a file
2023-12-02 02:11:03 +00:00
aoc_proc feat: some cursed proc macro stuff to improve actual solution code 2022-12-01 14:51:24 +00:00
src fix: this is 2023, don't download last year's inputs 2023-12-02 02:11:03 +00:00
.envrc feat: some cursed proc macro stuff to improve actual solution code 2022-12-01 14:51:24 +00:00
.gitignore feat: some cursed proc macro stuff to improve actual solution code 2022-12-01 14:51:24 +00:00
Cargo.lock feat: day 18 2022-12-18 22:28:47 +00:00
Cargo.toml feat: day 18 2022-12-18 22:28:47 +00:00
flake.lock chore: update rust to latest stable rather than some random old nightly 2023-12-02 00:28:44 +00:00
flake.nix chore: update rust to latest stable rather than some random old nightly 2023-12-02 00:28:44 +00:00
README.md docs: add a readme 2022-12-01 20:35:50 +00:00

aoc-2022

don't look in src/bin/day_*.rs if you don't want spoilers.

yes some of this setup is needlessly overengineered

magic rust macros (tm)

yes

i thought teehee i could make a proc macro for this

using this

just don't

ok alright

Make a solution for a day:

// Some useful things, including macros + color_eyre
use aoc_2022::prelude::*;

type Input = String; // some mildly useful structure for the input data

fn parse(s: &str) -> Result<Input> {
    // implement whatever scary string manipulation you like
    Ok(s.to_owned())
}

 // heres some macro magic ✨
#[aoc(
    day = 100, // used to fetch the challenge stuff from AOC directly
    parse = parse, // so I can reuse parsers if needed
    test_cases = ["day_100.txt"] // loaded from `test_cases/`
)]
fn day_100(mut input: Input) -> Result<()> {
    // do something remotely awful to solve the challenge

    // probably should println!() the results or something

    Ok(())
}

// macro: a wild main function appears!

auto-fetching

steal your session cookie from the browser devtools

make .env and add AOC_SESSION=<your massive long session token>

maybe use direnv to make it easier to load the .env file? (and the nix flake (yes theres one of those too uwu))