My Advent of Code solutions
Find a file
2022-12-10 20:41:46 +00:00
.aoc-cache feat: day 10 (38:26.49) 2022-12-10 20:41:46 +00:00
aoc_proc feat: some cursed proc macro stuff to improve actual solution code 2022-12-01 14:51:24 +00:00
src feat: day 10 (38:26.49) 2022-12-10 20:41:46 +00:00
test_cases feat: day 10 (38:26.49) 2022-12-10 20:41:46 +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 3 (17:01.34) 2022-12-03 12:07:13 +00:00
Cargo.toml feat: day 3 (17:01.34) 2022-12-03 12:07:13 +00:00
day_9_debug.txt feat: day 9 (43:26.36) 2022-12-09 09:54:34 +00:00
flake.lock fix: rust-analyzer 2022-12-08 19:33:27 +00:00
flake.nix fix: rust-analyzer 2022-12-08 19:33:27 +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))