Advent of Code solutions
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Prep for 2024

Ben C 90d639e1 eb5aae46

+119 -48
+10 -10
Cargo.lock
··· 6 6 name = "advent" 7 7 version = "0.1.0" 8 8 dependencies = [ 9 - "core", 9 + "advent_core", 10 10 "macros", 11 11 "y_2024", 12 + ] 13 + 14 + [[package]] 15 + name = "advent_core" 16 + version = "0.1.0" 17 + dependencies = [ 18 + "regex", 12 19 ] 13 20 14 21 [[package]] ··· 21 28 ] 22 29 23 30 [[package]] 24 - name = "core" 25 - version = "0.1.0" 26 - dependencies = [ 27 - "regex", 28 - ] 29 - 30 - [[package]] 31 31 name = "macros" 32 32 version = "0.1.0" 33 33 dependencies = [ 34 - "core", 34 + "advent_core", 35 35 ] 36 36 37 37 [[package]] ··· 77 77 name = "y_2024" 78 78 version = "0.1.0" 79 79 dependencies = [ 80 - "core", 80 + "advent_core", 81 81 "macros", 82 82 "utils", 83 83 ]
+2 -2
Cargo.toml
··· 6 6 [workspace] 7 7 8 8 members = [ 9 - "core", 9 + "advent_core", 10 10 "macros", 11 11 "utils", 12 12 "years/*" ··· 16 16 17 17 [dependencies] 18 18 y_2024 = { path = "years/2024" } 19 - core = { path = "core" } 19 + advent_core = { path = "advent_core" } 20 20 macros = { path = "macros" } 21 21 22 22 [[bin]]
+1 -1
core/Cargo.toml advent_core/Cargo.toml
··· 1 1 [package] 2 - name = "core" 2 + name = "advent_core" 3 3 version = "0.1.0" 4 4 edition = "2021" 5 5
+2 -2
core/src/bootstrap.rs advent_core/src/bootstrap.rs
··· 5 5 use crate::MAX_DAY; 6 6 7 7 const DAY_TEMPLATE: &str = " 8 - use core::{Day, day_stuff, ex_for_day}; 8 + use advent_core::{Day, day_stuff, ex_for_day}; 9 9 10 10 pub struct Day{day}; 11 11 ··· 42 42 edition = \"2021\" 43 43 44 44 [dependencies] 45 - core = { path = \"../../core\" } 45 + advent_core = { path = \"../../advent_core\" } 46 46 macros = { path = \"../../macros\" } 47 47 utils = { path = \"../../utils\" } 48 48 ";
core/src/day.rs advent_core/src/day.rs
core/src/lib.rs advent_core/src/lib.rs
core/src/parser.rs advent_core/src/parser.rs
core/src/year.rs advent_core/src/year.rs
+27
flake.lock
··· 1 + { 2 + "nodes": { 3 + "nixpkgs": { 4 + "locked": { 5 + "lastModified": 1732937961, 6 + "narHash": "sha256-B5pYT+IVaqcrfOekkwKvx/iToDnuQWzc2oyDxzzBDc4=", 7 + "owner": "nixos", 8 + "repo": "nixpkgs", 9 + "rev": "4703b8d2c708e13a8cab03d865f90973536dcdf5", 10 + "type": "github" 11 + }, 12 + "original": { 13 + "owner": "nixos", 14 + "ref": "nixpkgs-unstable", 15 + "repo": "nixpkgs", 16 + "type": "github" 17 + } 18 + }, 19 + "root": { 20 + "inputs": { 21 + "nixpkgs": "nixpkgs" 22 + } 23 + } 24 + }, 25 + "root": "root", 26 + "version": 7 27 + }
+41
flake.nix
··· 1 + { 2 + inputs.nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; 3 + 4 + outputs = { 5 + self, 6 + nixpkgs, 7 + }: let 8 + forAllSystems = nixpkgs.lib.genAttrs [ 9 + "aarch64-linux" 10 + "aarch64-darwin" 11 + "x86_64-darwin" 12 + "x86_64-linux" 13 + ]; 14 + pkgsFor = system: import nixpkgs {inherit system;}; 15 + in { 16 + packages = 17 + forAllSystems 18 + (system: let 19 + pkgs = pkgsFor system; 20 + in { 21 + default = pkgs.rustPlatform.buildRustPackage { 22 + pname = "advent"; 23 + version = "0.1.0"; 24 + src = ./.; 25 + cargoLock.lockFile = ./Cargo.lock; 26 + }; 27 + }); 28 + devShells = forAllSystems: ( 29 + system: let 30 + pkgs = pkgsFor system; 31 + in { 32 + default = pkgs.mkShell { 33 + packages = with pkgs; [ 34 + cargo 35 + just 36 + ]; 37 + }; 38 + } 39 + ); 40 + }; 41 + }
+3
justfile
··· 16 16 17 17 prep: 18 18 cargo run --release -- new {{year}} 19 + 20 + start: 21 + codium . --goto years/{{year}}/src/day_{{day}}.rs
+1 -1
macros/Cargo.toml
··· 9 9 proc-macro = true 10 10 11 11 [dependencies] 12 - core = { path = "../core" } 12 + advent_core = { path = "../advent_core" }
+4 -4
macros/src/lib.rs
··· 1 1 extern crate proc_macro; 2 2 3 - use core::MAX_DAY; 3 + use advent_core::MAX_DAY; 4 4 5 5 use proc_macro::TokenStream; 6 6 ··· 96 96 #[cfg(test)] 97 97 mod tests {{ 98 98 use super::*; 99 - use core::{{Day, Year}}; 99 + use advent_core::{{Day, Year}}; 100 100 101 101 {day_tests} 102 102 }}", ··· 119 119 " 120 120 {mods} 121 121 122 - use core::{{Year, Day}}; 122 + use advent_core::{{Year, Day}}; 123 123 {uses} 124 124 125 125 {year_struct} ··· 137 137 138 138 format!( 139 139 " 140 - use core::{{Year, get_dp_and_input}}; 140 + use advent_core::{{Year, get_dp_and_input}}; 141 141 142 142 use y_{year}::Year{year}; 143 143
+1 -1
src/main.rs
··· 1 - use core::{get_ydp_and_input, make_year, Selection, Year, DP, YDP}; 1 + use advent_core::{get_ydp_and_input, make_year, Selection, Year, DP, YDP}; 2 2 use macros::global_runner; 3 3 4 4 global_runner!(2024);
+1 -1
years/2024/Cargo.toml
··· 5 5 edition = "2021" 6 6 7 7 [dependencies] 8 - core = { path = "../../core" } 8 + advent_core = { path = "../../advent_core" } 9 9 macros = { path = "../../macros" } 10 10 utils = { path = "../../utils" }
+2 -2
years/2024/src/day_1.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day1; 5 5 ··· 8 8 day_stuff!(1, "", ""); 9 9 10 10 fn part_1(_input: Self::Input) -> Option<String> { 11 - Some(_input.to_string()) 11 + None 12 12 } 13 13 14 14 fn part_2(_input: Self::Input) -> Option<String> {
+1 -1
years/2024/src/day_10.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day10; 5 5
+1 -1
years/2024/src/day_11.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day11; 5 5
+1 -1
years/2024/src/day_12.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day12; 5 5
+1 -1
years/2024/src/day_13.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day13; 5 5
+1 -1
years/2024/src/day_14.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day14; 5 5
+1 -1
years/2024/src/day_15.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day15; 5 5
+1 -1
years/2024/src/day_16.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day16; 5 5
+1 -1
years/2024/src/day_17.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day17; 5 5
+1 -1
years/2024/src/day_18.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day18; 5 5
+1 -1
years/2024/src/day_19.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day19; 5 5
+1 -1
years/2024/src/day_2.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day2; 5 5
+1 -1
years/2024/src/day_20.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day20; 5 5
+1 -1
years/2024/src/day_21.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day21; 5 5
+1 -1
years/2024/src/day_22.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day22; 5 5
+1 -1
years/2024/src/day_23.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day23; 5 5
+1 -1
years/2024/src/day_24.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day24; 5 5
+1 -1
years/2024/src/day_25.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day25; 5 5
+1 -1
years/2024/src/day_3.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day3; 5 5
+1 -1
years/2024/src/day_4.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day4; 5 5
+1 -1
years/2024/src/day_5.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day5; 5 5
+1 -1
years/2024/src/day_6.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day6; 5 5
+1 -1
years/2024/src/day_7.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day7; 5 5
+1 -1
years/2024/src/day_8.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day8; 5 5
+1 -1
years/2024/src/day_9.rs
··· 1 1 2 - use core::{Day, day_stuff, ex_for_day}; 2 + use advent_core::{Day, day_stuff, ex_for_day}; 3 3 4 4 pub struct Day9; 5 5