From 4cbb61569d1e53184573d6513bf20b7697ffa4ce Mon Sep 17 00:00:00 2001 From: Jos van Goor Date: Mon, 1 Dec 2025 21:44:08 +0100 Subject: [PATCH] Added advent of code 2025 --- advent_of_code_2025/Cargo.lock | 16 + advent_of_code_2025/Cargo.toml | 7 + advent_of_code_2025/rustfmt.toml | 14 + advent_of_code_2025/src/day1/input.txt | 4431 +++++++++++++++++ advent_of_code_2025/src/day1/mod.rs | 2 + advent_of_code_2025/src/day1/part1.rs | 4 + advent_of_code_2025/src/day1/part2.rs | 4 + advent_of_code_2025/src/main.rs | 4 + .../src/utility/inputstring.rs | 10 + advent_of_code_2025/src/utility/mod.rs | 6 + advent_of_code_2025/src/utility/solveday.rs | 30 + 11 files changed, 4528 insertions(+) create mode 100644 advent_of_code_2025/Cargo.lock create mode 100644 advent_of_code_2025/Cargo.toml create mode 100644 advent_of_code_2025/rustfmt.toml create mode 100644 advent_of_code_2025/src/day1/input.txt create mode 100644 advent_of_code_2025/src/day1/mod.rs create mode 100644 advent_of_code_2025/src/day1/part1.rs create mode 100644 advent_of_code_2025/src/day1/part2.rs create mode 100644 advent_of_code_2025/src/main.rs create mode 100644 advent_of_code_2025/src/utility/inputstring.rs create mode 100644 advent_of_code_2025/src/utility/mod.rs create mode 100644 advent_of_code_2025/src/utility/solveday.rs diff --git a/advent_of_code_2025/Cargo.lock b/advent_of_code_2025/Cargo.lock new file mode 100644 index 0000000..6d7513a --- /dev/null +++ b/advent_of_code_2025/Cargo.lock @@ -0,0 +1,16 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "advent_of_code_2025" +version = "0.1.0" +dependencies = [ + "paste", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" diff --git a/advent_of_code_2025/Cargo.toml b/advent_of_code_2025/Cargo.toml new file mode 100644 index 0000000..74028a7 --- /dev/null +++ b/advent_of_code_2025/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "advent_of_code_2025" +version = "0.1.0" +edition = "2024" + +[dependencies] +paste = "1.0" \ No newline at end of file diff --git a/advent_of_code_2025/rustfmt.toml b/advent_of_code_2025/rustfmt.toml new file mode 100644 index 0000000..b04e7a7 --- /dev/null +++ b/advent_of_code_2025/rustfmt.toml @@ -0,0 +1,14 @@ +binop_separator = "Back" +brace_style = "PreferSameLine" +edition = "2024" +enum_discrim_align_threshold = 120 +fn_single_line = false +group_imports = "StdExternalCrate" +imports_granularity = "Module" +indent_style = "Block" +max_width = 160 +reorder_impl_items = false +struct_field_align_threshold = 120 +unstable_features = true +use_small_heuristics = "Max" +where_single_line = true \ No newline at end of file diff --git a/advent_of_code_2025/src/day1/input.txt b/advent_of_code_2025/src/day1/input.txt new file mode 100644 index 0000000..3f01af0 --- /dev/null +++ b/advent_of_code_2025/src/day1/input.txt @@ -0,0 +1,4431 @@ +L14 +L46 +L44 +R17 +L23 +L39 +R2 +R12 +L50 +L11 +R21 +L11 +L3 +R48 +L11 +L50 +L49 +R47 +L43 +R6 +R2 +L17 +R32 +R22 +L2 +L37 +L40 +L50 +L39 +L14 +R18 +L22 +R28 +L24 +L3 +R30 +R37 +R31 +R47 +R17 +R39 +R24 +R34 +L35 +L17 +L41 +R44 +R3 +R42 +L18 +L82 +R82 +R52 +L96 +R42 +R52 +R50 +R45 +L56 +R11 +L97 +L21 +R18 +L12 +R2 +L90 +L40 +L60 +R67 +R69 +L36 +L8 +L7 +R4 +R7 +L96 +L90 +R45 +L77 +L1 +L29 +L48 +R73 +R27 +L9 +L60 +L67 +R98 +L62 +R12 +R88 +R75 +L3 +R50 +L48 +L62 +R25 +R63 +R9 +L27 +R80 +L53 +L92 +L17 +L77 +R77 +R848 +R97 +R55 +R22 +R29 +L78 +L82 +L91 +R8 +R49 +L57 +L65 +L84 +L44 +R93 +R11 +R89 +L57 +R94 +L17 +L20 +R69 +R98 +R4 +L90 +L62 +R46 +R35 +R456 +L56 +L97 +R46 +R109 +R142 +L7 +R167 +R20 +L38 +L26 +L5 +R89 +L3 +L30 +R33 +L46 +R16 +L43 +R37 +L64 +R93 +R71 +R36 +L25 +R40 +L15 +L14 +L421 +L65 +L85 +R82 +L21 +L520 +L76 +L33 +R153 +L26 +R52 +R474 +L1 +L1 +R229 +R90 +L78 +L39 +L94 +L6 +L51 +R35 +R16 +L22 +R42 +R72 +L52 +R18 +R63 +R79 +L29 +L71 +L12 +R12 +R35 +L35 +L97 +L23 +R91 +R77 +R52 +L241 +L69 +L90 +L5 +L95 +L54 +R4 +R530 +R20 +L424 +L76 +L69 +L10 +L84 +L63 +R26 +R125 +L57 +R86 +R336 +R910 +L80 +L75 +L145 +L47 +L53 +L76 +R68 +R8 +R45 +L58 +R913 +L85 +R85 +L28 +R17 +L15 +L74 +L72 +L28 +L51 +L810 +L75 +R189 +R47 +R99 +L16 +R732 +L15 +R580 +L680 +R83 +L83 +L92 +L46 +R95 +L29 +R72 +R28 +L28 +L53 +L5 +L89 +R73 +R82 +R92 +R58 +R34 +L92 +L138 +L33 +L29 +L15 +L11 +L5 +L75 +L80 +L78 +L36 +R14 +R86 +L67 +R25 +R142 +L90 +R90 +L48 +R48 +L89 +L886 +R59 +L69 +L915 +R426 +L61 +R82 +R53 +L62 +R62 +R30 +R7 +L37 +L99 +R399 +R88 +R12 +R216 +L50 +R63 +L52 +R456 +L942 +R9 +L19 +R1 +L68 +L414 +L66 +L62 +L372 +R73 +L12 +R60 +R243 +R96 +L694 +L66 +R730 +R57 +R43 +R35 +L73 +R4 +R27 +R77 +R907 +L61 +R96 +R54 +R12 +L4 +L49 +L56 +R70 +L5 +L64 +L621 +L79 +R83 +R17 +R90 +L10 +R878 +R51 +L66 +L52 +L308 +L73 +L52 +R62 +L36 +L44 +L70 +L11 +L22 +L337 +R77 +R23 +L39 +R707 +L4 +R736 +L92 +R92 +R205 +R95 +L22 +L89 +L55 +R66 +L41 +R65 +R76 +R20 +R780 +R49 +R71 +L84 +L36 +R50 +R50 +R85 +L85 +R218 +L18 +L32 +R72 +R63 +R897 +R706 +L106 +L16 +R58 +L9 +R67 +R13 +L29 +R16 +L27 +L35 +L38 +R49 +R851 +L26 +L47 +R52 +L22 +L57 +R2 +L95 +R73 +L80 +R25 +R75 +R30 +R35 +L331 +L35 +R1 +L64 +R64 +L63 +L31 +R140 +R95 +L78 +R37 +L81 +L76 +L32 +L24 +L75 +R88 +L41 +R44 +R734 +R8 +R30 +L290 +R915 +R14 +R69 +L83 +L70 +R980 +L110 +R55 +R945 +R659 +L59 +R50 +R50 +R51 +R49 +R1 +R57 +R42 +L99 +R99 +R57 +R43 +R317 +R67 +R283 +L67 +L64 +R97 +L633 +L70 +R96 +L69 +R47 +R64 +L726 +R958 +R58 +R44 +R60 +R438 +R79 +L677 +R98 +L95 +L638 +L41 +R74 +L333 +L67 +R72 +L72 +R96 +L96 +L354 +L797 +L92 +R15 +L29 +L185 +R16 +R726 +L68 +R68 +L53 +L627 +R80 +R88 +L88 +L53 +R45 +R833 +L82 +R57 +L94 +L33 +L356 +L44 +R267 +R45 +R7 +L6 +L588 +R15 +L108 +R3 +L8 +L72 +L28 +R36 +R67 +L3 +R89 +L30 +R41 +L927 +L73 +L54 +R64 +L10 +R83 +R60 +L43 +L73 +L445 +L966 +R88 +L73 +L31 +L35 +R35 +R21 +R56 +R23 +L98 +R86 +R30 +R97 +L39 +R92 +L80 +L88 +R82 +L97 +R88 +L73 +R60 +L60 +R76 +L20 +L529 +R9 +L37 +R1 +R59 +L432 +R973 +L81 +R15 +R14 +R452 +L148 +L52 +L71 +R71 +L20 +L580 +L81 +R81 +R77 +R23 +L11 +L89 +L4 +R4 +L40 +R210 +L70 +R185 +R15 +R41 +L668 +R327 +R9 +L31 +L789 +R11 +L95 +R15 +R59 +L72 +R93 +R92 +L92 +R29 +R471 +R90 +R54 +R81 +L28 +L48 +L49 +L238 +R370 +R384 +L2 +R86 +R23 +R77 +R32 +R42 +L25 +L20 +L701 +R35 +L63 +R2 +L64 +R34 +L72 +R88 +R512 +L77 +R94 +R830 +R33 +L80 +L69 +R3 +L67 +R53 +R37 +R59 +R84 +R9 +L37 +L23 +R51 +L39 +R239 +L492 +R92 +R20 +L20 +L38 +L43 +R78 +R283 +L80 +L83 +L317 +L575 +R927 +L19 +R467 +R90 +L14 +L89 +R86 +R85 +L60 +L98 +R23 +R11 +R25 +L23 +R94 +R70 +L18 +R18 +L46 +R394 +L77 +L53 +L98 +R80 +L66 +L89 +R441 +L67 +L19 +R46 +R54 +L85 +R94 +L64 +R655 +R72 +L868 +L304 +L574 +R534 +R40 +L85 +R33 +L64 +R73 +L57 +R87 +L78 +R91 +R11 +R35 +L46 +L67 +L22 +R18 +L517 +R75 +L322 +L76 +L989 +R79 +R33 +R588 +R47 +L47 +L83 +L417 +L36 +R136 +L62 +L38 +R62 +L62 +R563 +R44 +L7 +R92 +L92 +R6 +R621 +L27 +L44 +R42 +R4 +L24 +L92 +R14 +R519 +R66 +L17 +L12 +R92 +R52 +R527 +R73 +R66 +L66 +R738 +L4 +R96 +R27 +L78 +L579 +R73 +R7 +R20 +L98 +L64 +L48 +R425 +R26 +L65 +L2 +R401 +R3 +R22 +L64 +L78 +R42 +L631 +R288 +L557 +R23 +R77 +L27 +R71 +L54 +L90 +L99 +R64 +L884 +L81 +L92 +L28 +R7 +L40 +L664 +L66 +R60 +R93 +R32 +L22 +L50 +L59 +R29 +L273 +L92 +R229 +R36 +L29 +R7 +L42 +L36 +L604 +L96 +R86 +R8 +L872 +R42 +R36 +L76 +L896 +L28 +L45 +L40 +R1 +L90 +L3 +L97 +L2 +L24 +R815 +L30 +R15 +L490 +L12 +L98 +L41 +R41 +R6 +R26 +L32 +L11 +L89 +R56 +L56 +R123 +L69 +R20 +L859 +L313 +L14 +L88 +R96 +R33 +R26 +R45 +R92 +R86 +R10 +R12 +R89 +L33 +R44 +L61 +L75 +R336 +R25 +L25 +L97 +L603 +L530 +R230 +L75 +L63 +L88 +L74 +L46 +L25 +L54 +R39 +L75 +R72 +R211 +R929 +R138 +L934 +L296 +R66 +L964 +R439 +L15 +R15 +L22 +L78 +L60 +R60 +L26 +R687 +L365 +L38 +L58 +L25 +L75 +L54 +L82 +L99 +L99 +L266 +L62 +R79 +R83 +L37 +R23 +R57 +R357 +R54 +R77 +L69 +L34 +R872 +R15 +L15 +R79 +L28 +R91 +R83 +R8 +R67 +R89 +R11 +R30 +L30 +L35 +R35 +R873 +R463 +L651 +R15 +L78 +R20 +L942 +L38 +R11 +L73 +L9 +L91 +R54 +L554 +L76 +R81 +R95 +R70 +L70 +R70 +L70 +R69 +R56 +R75 +L42 +L64 +R37 +R56 +R348 +L755 +R20 +R86 +R546 +R68 +L40 +L31 +R71 +R6 +R94 +L21 +L79 +L50 +L99 +R49 +L97 +R99 +R62 +R19 +R73 +R67 +R77 +R99 +L26 +R60 +L33 +L37 +R33 +R36 +L98 +R66 +R94 +R6 +L64 +R232 +L564 +R96 +L52 +R76 +L145 +R21 +R245 +R40 +R15 +R572 +R28 +L8 +L92 +R73 +L28 +L45 +L968 +L69 +L58 +R3 +L8 +L26 +L21 +L92 +R26 +R13 +R21 +L839 +R18 +R88 +R68 +R85 +R74 +L55 +L318 +L42 +R93 +R68 +R55 +R82 +L64 +R93 +R5 +R68 +L3 +R96 +L93 +R541 +R2 +R57 +L68 +R668 +L244 +L56 +R411 +R89 +L13 +L35 +R642 +R82 +R37 +R80 +L21 +L79 +R56 +L363 +L86 +L50 +L596 +R46 +R23 +R77 +L74 +R850 +R32 +R14 +L77 +L32 +R687 +R663 +R98 +L61 +R99 +L32 +L67 +R20 +L21 +R1 +L51 +R51 +L2 +L724 +R61 +L99 +R54 +R91 +L81 +L138 +L52 +L1 +R7 +L60 +R20 +R47 +R808 +L31 +L16 +L94 +R10 +L3 +L952 +L45 +L145 +L9 +R49 +L15 +L80 +R8 +R34 +L228 +L94 +L86 +R31 +L39 +L60 +L66 +R7 +L48 +L652 +R426 +R67 +R44 +R56 +L308 +L35 +R43 +L4 +L96 +R82 +R74 +L55 +L50 +R78 +L829 +L82 +L26 +L92 +R17 +R59 +L76 +L84 +L16 +R14 +R286 +R85 +L685 +L27 +L54 +L819 +L47 +R59 +L43 +L369 +L32 +L8 +R24 +R40 +R976 +R702 +R87 +L492 +R58 +L22 +R944 +R23 +L92 +L708 +L11 +R75 +L48 +L816 +L985 +R74 +L147 +L71 +R29 +L43 +R510 +R16 +R26 +L509 +R51 +L75 +R89 +R35 +L60 +R46 +R14 +R60 +L160 +L52 +R30 +R61 +L39 +R78 +R6 +L740 +L61 +R17 +R50 +L40 +R42 +R948 +R60 +R40 +L75 +L25 +R286 +R44 +L78 +L52 +L78 +R50 +R99 +R29 +R54 +L54 +L62 +R83 +R79 +L5 +L32 +L92 +R29 +R85 +L53 +R71 +R190 +L27 +R28 +L962 +L67 +R35 +L714 +R62 +L929 +L19 +R684 +R70 +L54 +L67 +L333 +R883 +L163 +R92 +R38 +R50 +R127 +R73 +L83 +L59 +L1 +L757 +R70 +L70 +R41 +L3 +R87 +R75 +L53 +R53 +L96 +L75 +R73 +R298 +R537 +L37 +L86 +L14 +L83 +R83 +R24 +R83 +R73 +L164 +R873 +L89 +R12 +R61 +L373 +R342 +R58 +R15 +L15 +L77 +R77 +R76 +L39 +L808 +L20 +R486 +L15 +L31 +R50 +L16 +R43 +L126 +R58 +L28 +L80 +R894 +L76 +R824 +L29 +R43 +R87 +R16 +L9 +L55 +L15 +R20 +R41 +L34 +R43 +R49 +L815 +L134 +R5 +R12 +L14 +R297 +L47 +R47 +R29 +L25 +R27 +L85 +L26 +L311 +L60 +R58 +L207 +R377 +R239 +R67 +R47 +L29 +L660 +L41 +R17 +L82 +L835 +L88 +L85 +R73 +L76 +R74 +R56 +R61 +L59 +L999 +R61 +R92 +R87 +R3 +R11 +R534 +L840 +R95 +R94 +R906 +R801 +L53 +L13 +L64 +L64 +L63 +R56 +R35 +L35 +R807 +R390 +L97 +L72 +R86 +L21 +R74 +L15 +L52 +L844 +L227 +R718 +L71 +L77 +L31 +L71 +R46 +R5 +R52 +L44 +L56 +R97 +L291 +L38 +R32 +L21 +L37 +L19 +L58 +R94 +R41 +R48 +R47 +R21 +L53 +L63 +L593 +L84 +L107 +R59 +R25 +R274 +R1 +L82 +R7 +L255 +L45 +R87 +L56 +L92 +L938 +L76 +L25 +L91 +L465 +R846 +L37 +R47 +L10 +R10 +R99 +L97 +L51 +R39 +L37 +R7 +L87 +R46 +L421 +L82 +R84 +L2 +L98 +R236 +L916 +R80 +L20 +L641 +L18 +R39 +L560 +R98 +L69 +R71 +R87 +L48 +L96 +L79 +R36 +L43 +R43 +L12 +L79 +R91 +L2 +R47 +R812 +L11 +L75 +L19 +R948 +L38 +L62 +R11 +R86 +L97 +R46 +R80 +R74 +R6 +R20 +R5 +L31 +L53 +L498 +R51 +L4 +L296 +R29 +R71 +L93 +L53 +R46 +L50 +L850 +R44 +L64 +R20 +R799 +R855 +R846 +L870 +L9 +L241 +L78 +R723 +L57 +R130 +R2 +R255 +R45 +R87 +R46 +L20 +R87 +L75 +L44 +L81 +L24 +R37 +R31 +R82 +R74 +L992 +R992 +L37 +R25 +R12 +R37 +R63 +L52 +L21 +L27 +R55 +R45 +R952 +R20 +R28 +L96 +R96 +R34 +L94 +L67 +R27 +R50 +L50 +L642 +L21 +R57 +L26 +L40 +L334 +R52 +L88 +L558 +L958 +L84 +R42 +L66 +R65 +R1 +R10 +R35 +R339 +L84 +R85 +R15 +L89 +L911 +L87 +L13 +L65 +L5 +L30 +R25 +R75 +R61 +R8 +L469 +L26 +R26 +R25 +R75 +L9 +L37 +R98 +R43 +L928 +L167 +L19 +L67 +R73 +R313 +L272 +R17 +R55 +L35 +R27 +L492 +L70 +L53 +L77 +R10 +R90 +L764 +R64 +R77 +L77 +R47 +R82 +L44 +R142 +L80 +R35 +R29 +L720 +R9 +L97 +R93 +R199 +R5 +R11 +R881 +R4 +L29 +L27 +L46 +R6 +L73 +R4 +R798 +R12 +L4 +R63 +R89 +L12 +L84 +R7 +R45 +L345 +L45 +R245 +L77 +L87 +R51 +R17 +L204 +L24 +L11 +L41 +R56 +L546 +L34 +L42 +L86 +R70 +L42 +L67 +L33 +L1 +R1 +R86 +R14 +L12 +R209 +R937 +L370 +R36 +L36 +R96 +L60 +L74 +L915 +L4 +R69 +L703 +R27 +R5 +R133 +L167 +R54 +R75 +R961 +R51 +R20 +L32 +L99 +L1 +L9 +L86 +R1 +R394 +R589 +L16 +R23 +L96 +R485 +L7 +R22 +R14 +R86 +R97 +R77 +L33 +L598 +L43 +R86 +L36 +L6 +R39 +R929 +L12 +L92 +R44 +L52 +L924 +L76 +L28 +L88 +L84 +R64 +L37 +L27 +L52 +R90 +R8 +L46 +L27 +L73 +L51 +R51 +R28 +R72 +L11 +L599 +L45 +R62 +R79 +R654 +R73 +L18 +L95 +R91 +R771 +R83 +L359 +L848 +R62 +R46 +L28 +L26 +R32 +L90 +R97 +R93 +R198 +R94 +R84 +L31 +R461 +R70 +L96 +L4 +L72 +R96 +R38 +L62 +R65 +L65 +R12 +L7 +L30 +L75 +L25 +R554 +R80 +L2 +R93 +R175 +L333 +L42 +L774 +L8 +R58 +R288 +L17 +R68 +R185 +L63 +R14 +R77 +R772 +R56 +L93 +L63 +L69 +R801 +L68 +L13 +L44 +R993 +L24 +R24 +L61 +L39 +R68 +R88 +R29 +R15 +R54 +L54 +R832 +R699 +L71 +R40 +L763 +R63 +R9 +R91 +R973 +L73 +L49 +L56 +L88 +R53 +R140 +R230 +R52 +L82 +L67 +R67 +R14 +L14 +L79 +R42 +L63 +L99 +L1 +L37 +R937 +R61 +R39 +R25 +L242 +L16 +L89 +R22 +R36 +R13 +R84 +L33 +R74 +L74 +L15 +L17 +L92 +L36 +L13 +R74 +R53 +R64 +L818 +L56 +R56 +L69 +L80 +R49 +R54 +R72 +R74 +L36 +R36 +R87 +L924 +L33 +L1 +L29 +R82 +L1 +R19 +R25 +R375 +R9 +R791 +L24 +L34 +R64 +R75 +R19 +R94 +L94 +R38 +R15 +R56 +R688 +R3 +R41 +L33 +R60 +R32 +R72 +R41 +L13 +R336 +R64 +L74 +L41 +R15 +L86 +L97 +R97 +R86 +L52 +L13 +R39 +R26 +R44 +L71 +L73 +L91 +R62 +L8 +R41 +L4 +R88 +R12 +R77 +L559 +R91 +L9 +L94 +R606 +R38 +L50 +R44 +L41 +R89 +R8 +R98 +L27 +L96 +R25 +L923 +L77 +R55 +R51 +L607 +L6 +R37 +L30 +R68 +R316 +R34 +R82 +R11 +L11 +R8 +L8 +L9 +R32 +R77 +R240 +L65 +R25 +L11 +R11 +L55 +L35 +R27 +L31 +L6 +L196 +R96 +R57 +R52 +R45 +L954 +L3 +L690 +R93 +L68 +L51 +L41 +R42 +L82 +R71 +R29 +R6 +L564 +L42 +R4 +R68 +L83 +L2 +R77 +L87 +R857 +L15 +R2 +R19 +L130 +R16 +L11 +L35 +L2 +L82 +L84 +R5 +L25 +R8 +L67 +R67 +R88 +L88 +R35 +R65 +L913 +L37 +R750 +R44 +L60 +R16 +R88 +R48 +L60 +R891 +R92 +L55 +R42 +L40 +R38 +L44 +R126 +R65 +R9 +R592 +L35 +R43 +R9 +L9 +R55 +R69 +R38 +R75 +R63 +L24 +L56 +R80 +R77 +L91 +R614 +R227 +L285 +L50 +L92 +R95 +R62 +L11 +R69 +L15 +R30 +R36 +L580 +R14 +L8 +L192 +L30 +R30 +L78 +L45 +L77 +R309 +L93 +L16 +L849 +R512 +L61 +L69 +R24 +R43 +R43 +R74 +R755 +L460 +L11 +L446 +L93 +R38 +L63 +L68 +L756 +L51 +R38 +L98 +R314 +R940 +R61 +R38 +R92 +R9 +R82 +L1 +L678 +L434 +L1 +R51 +L11 +R96 +R69 +R22 +L34 +R39 +R97 +R25 +R45 +L80 +L41 +L8 +R16 +R92 +L37 +R35 +L88 +L97 +R431 +R83 +L29 +R97 +L97 +L14 +R13 +L99 +L5 +R45 +L5 +R7 +L42 +R19 +L19 +R21 +R79 +R975 +L75 +L46 +R38 +R83 +R25 +R874 +L22 +L15 +L617 +L92 +L28 +L31 +L80 +L6 +R19 +R30 +L332 +R51 +R49 +L86 +L14 +R35 +R265 +R443 +L20 +L43 +R35 +L88 +R74 +L747 +L775 +R287 +R80 +L46 +L72 +R60 +R80 +L468 +L99 +L1 +R257 +L50 +L7 +L49 +L8 +R76 +R20 +R44 +R95 +L796 +L50 +L232 +L97 +L39 +L58 +R94 +R99 +L51 +L48 +L158 +R58 +L395 +L29 +R75 +L885 +R87 +L820 +R88 +L94 +R73 +R73 +L73 +L3 +R3 +R31 +L31 +L90 +R32 +R58 +R744 +R85 +R71 +L604 +L79 +R6 +R77 +L349 +R802 +R47 +R59 +L193 +L66 +R87 +L429 +L27 +R391 +R34 +L79 +R323 +R96 +L96 +R27 +R73 +L93 +L88 +L927 +L792 +L82 +L55 +L365 +R66 +L64 +L29 +L71 +L83 +L15 +R98 +L91 +R51 +L74 +L911 +L26 +L34 +L15 +R24 +L137 +R13 +L772 +L28 +R30 +L808 +L1 +L21 +R481 +R60 +L41 +R41 +R76 +R60 +L839 +L42 +R804 +R10 +L89 +R96 +R83 +R80 +L78 +L323 +L26 +L70 +L36 +R39 +R83 +R46 +R42 +R82 +R212 +R49 +R13 +L67 +R54 +R57 +R95 +L94 +R42 +R86 +R31 +L20 +R26 +L91 +R56 +L95 +L61 +L32 +R77 +L77 +R48 +R52 +R78 +L2 +L4 +L72 +R774 +L774 +L30 +L70 +L73 +R48 +R94 +R965 +L34 +R92 +R8 +L36 +L32 +L97 +L935 +R53 +R91 +R56 +R123 +R41 +L721 +R88 +R67 +L45 +L381 +R1 +R27 +R32 +R13 +L9 +L36 +R647 +R39 +L51 +R165 +R12 +L40 +L82 +L85 +L5 +L87 +R87 +R177 +L377 +L37 +R63 +R93 +R887 +L45 +R39 +R69 +R471 +R35 +L70 +L5 +R58 +L58 +R26 +L26 +R67 +L67 +L48 +R57 +L79 +R329 +L80 +L79 +R83 +R17 +L38 +R96 +R42 +L84 +R86 +R4 +L606 +L1 +L43 +L56 +L79 +R279 +R94 +R83 +R23 +L325 +R44 +R463 +L21 +L61 +R28 +R40 +L43 +R64 +L46 +L443 +R18 +L18 +L99 +L80 +L90 +R71 +L54 +L67 +R82 +L19 +L44 +L59 +L56 +R20 +L53 +R748 +R51 +L51 +L258 +R19 +L986 +R37 +L612 +L37 +R754 +R489 +R94 +R4 +R96 +L15 +R515 +R19 +R2 +L29 +R42 +L29 +L26 +L779 +R29 +R26 +L94 +R39 +L28 +L72 +L58 +L58 +L23 +R198 +L59 +L45 +L55 +L4 +R4 +L70 +R5 +L51 +R76 +R708 +L596 +R69 +R42 +L738 +R55 +R933 +R69 +R198 +L94 +R94 +L10 +R57 +L3 +R856 +R93 +L93 +L757 +R76 +L819 +L137 +R28 +L27 +R57 +L121 +L64 +L336 +R80 +L713 +R27 +R529 +R777 +R98 +L99 +R73 +R528 +L269 +L81 +L650 +R55 +L84 +R89 +R40 +R30 +L79 +R49 +R410 +L18 +L84 +R44 +L52 +R11 +R689 +L71 +R71 +R17 +R65 +R28 +R90 +L38 +L70 +L92 +R924 +L655 +L957 +R1 +L4 +L9 +L419 +L81 +R34 +R66 +L93 +L10 +L97 +L477 +L923 +L86 +R86 +R41 +L67 +R77 +R34 +L8 +R49 +L26 +L40 +L54 +R94 +L95 +L83 +R478 +L10 +L90 +L94 +L73 +L476 +R43 +L92 +L8 +R87 +R13 +L41 +L81 +R47 +L89 +R64 +R83 +L61 +L28 +R7 +L1 +R89 +R6 +R2 +L97 +R984 +L84 +L24 +R26 +R31 +L32 +L66 +L42 +R5 +R2 +R64 +L64 +L86 +R27 +R39 +L80 +L38 +L86 +L59 +L17 +L71 +R71 +R44 +R95 +R61 +L871 +L50 +L79 +R88 +R61 +R51 +L23 +L77 +R6 +R7 +R87 +R69 +L94 +R325 +L46 +R74 +R936 +L64 +L61 +L39 +R18 +L8 +R190 +R464 +L64 +R63 +R51 +L81 +R959 +R96 +R26 +R61 +L75 +R838 +L10 +R88 +R36 +R748 +L62 +L38 +L46 +L89 +L23 +R21 +L67 +R69 +R43 +L1 +R50 +R68 +R42 +L6 +R160 +L33 +L88 +L45 +R354 +L9 +L599 +R99 +R356 +R18 +L74 +L84 +R85 +R99 +R743 +L43 +R743 +R57 +R98 +R710 +R92 +R990 +R69 +R18 +R75 +L90 +L62 +L68 +R23 +R12 +R33 +L95 +L294 +R19 +R770 +L17 +R17 +L47 +R49 +L38 +R36 +R29 +R71 +L39 +L961 +R385 +L67 +L5 +R68 +L71 +L4 +L37 +L24 +R55 +L21 +L91 +L282 +R95 +L75 +R74 +L38 +L62 +L706 +R38 +R24 +R75 +R169 +L787 +R87 +L30 +R39 +L9 +L6 +L263 +L771 +L6 +L87 +L30 +R31 +L17 +R49 +R95 +L30 +R77 +L42 +L187 +R69 +R72 +L36 +L19 +R1 +R7 +R25 +R27 +L59 +L69 +L88 +R44 +L21 +L12 +L54 +R297 +L97 +L730 +L759 +L31 +R20 +L701 +R107 +R475 +R719 +L49 +R831 +L82 +R682 +R30 +R84 +R95 +L84 +L11 +L59 +L412 +R846 +R29 +L35 +R35 +L356 +R51 +R15 +L10 +L49 +L14 +R68 +R76 +L81 +R51 +L51 +R11 +R63 +L512 +R38 +R45 +R540 +L74 +R6 +L32 +R415 +R29 +L5 +L24 +R17 +R49 +R14 +L80 +R82 +R32 +L14 +R87 +R49 +R14 +L724 +R74 +L24 +R46 +R20 +R91 +R3 +L36 +R1 +R99 +L26 +L8 +L987 +R21 +R10 +R241 +R22 +R50 +L34 +L1 +L88 +L87 +R87 +L13 +L85 +L875 +R73 +R37 +L20 +L34 +R896 +R721 +L79 +R83 +R16 +L676 +L79 +R77 +L9 +L13 +L85 +R37 +L54 +R82 +L74 +R940 +R24 +R7 +L10 +L87 +R38 +R95 +R899 +R68 +R489 +R46 +L35 +L39 +R39 +L35 +R287 +L4 +L3 +R55 +R8 +R92 +L34 +L91 +R55 +R3 +L77 +L593 +L627 +R64 +R57 +R43 +R15 +L63 +L58 +R46 +R60 +R9 +L818 +R16 +R21 +R72 +R24 +L831 +L77 +L16 +L433 +R84 +L596 +L89 +L56 +L18 +L692 +L766 +R67 +R99 +L59 +L854 +R60 +L47 +R24 +R76 +L36 +L64 +L8 +R8 +R308 +L93 +R24 +L39 +R70 +L42 +L97 +R14 +R439 +L96 +L18 +L51 +L43 +L70 +L35 +R29 +L98 +L312 +L90 +R77 +L77 +R89 +R7 +R404 +L79 +L182 +R810 +R351 +L68 +R64 +R99 +L13 +L876 +R94 +L228 +R26 +L26 +L272 +R34 +R66 +L880 +L36 +R83 +L55 +R80 +R60 +L139 +L75 +R1 +L39 +L60 +L3 +R750 +R213 +R373 +R327 +L2 +R2 +R793 +L44 +R251 +L11 +L89 +L837 +R37 +L69 +L37 +L594 +R45 +R34 +L81 +R2 +R1 +L84 +L917 +R602 +L839 +R71 +R465 +L18 +L2 +L33 +L46 +L68 +R16 +L48 +L53 +L93 +L62 +L30 +L152 +L10 +L63 +L152 +L85 +R88 +L11 +L408 +L895 +R33 +L7 +R17 +R80 +R23 +L51 +L13 +L63 +L90 +L16 +L849 +R62 +R36 +R279 +L110 +L105 +R24 +R82 +L6 +L11 +R11 +L317 +L27 +R8 +R32 +R568 +R36 +R229 +L57 +L9 +L71 +L83 +L9 +L28 +R84 +L1 +L2 +L59 +R64 +R42 +L76 +L24 +R14 +L579 +L32 +L3 +L87 +R42 +R628 +R17 +R63 +R59 +L632 +L83 +L29 +L48 +R57 +L66 +L21 +R11 +L11 +L53 +L47 +R34 +L616 +L74 +L83 +R664 +R975 +L69 +L37 +L99 +L95 +L58 +L52 +R29 +L19 +L35 +R4 +R56 +L25 +R98 +L98 +R48 +R63 +R89 +L261 +R59 +R78 +L61 +L516 +R26 +L790 +L392 +R957 +L92 +L45 +R37 +R4 +L22 +L71 +R752 +L923 +L537 +L37 +L566 +R63 +L42 +L99 +R510 +L4 +R24 +L91 +R70 +L31 +L58 +L942 +R24 +R76 +L28 +L29 +R61 +L4 +L115 +L16 +L25 +L65 +L79 +R404 +L30 +R381 +R81 +R64 +L80 +L279 +R28 +L76 +R92 +L85 +R23 +R43 +L25 +L31 +R49 +R24 +L83 +R53 +R38 +R9 +R525 +L25 +R84 +L84 +R705 +L363 +R4 +L32 +L40 +R56 +L274 +R65 +R4 +R774 +L12 +R50 +L40 +R94 +R9 +R724 +L424 +L856 +L44 +R48 +L48 +L1 +R18 +L2 +L342 +L73 +L544 +L32 +R14 +L38 +R696 +R4 +R318 +L18 +L24 +L582 +L70 +R71 +L95 +R85 +R38 +L73 +R50 +L377 +R82 +L346 +L42 +L19 +R2 +R608 +R92 +L4 +R604 +L35 +R96 +L30 +R43 +R26 +L16 +R641 +L34 +L1 +R779 +R331 +L50 +L50 +R90 +R431 +R79 +L83 +R83 +L25 +L61 +L414 +L97 +R41 +R18 +R54 +R73 +L28 +L793 +R14 +L282 +R56 +R242 +R2 +L69 +R69 +L68 +R268 +R5 +L5 +L23 +L920 +R90 +R91 +R62 +R21 +R179 +L44 +R97 +R47 +R32 +L32 +R53 +R47 +L20 +R20 +L44 +R99 +L45 +R90 +R29 +R51 +L10 +L620 +R66 +R14 +L30 +R4 +L904 +L81 +R55 +R37 +L7 +R22 +R74 +R89 +R20 +L9 +R14 +R15 +R8 +L8 +L85 +R91 +R61 +R4 +L951 +L46 +L907 +R45 +R78 +R62 +R79 +R37 +L485 +R52 +R90 +L34 +R9 +L2 +R73 +R24 +L24 +L81 +L19 +L348 +L49 +R60 +R45 +L522 +R356 +R25 +L94 +L87 +L51 +R65 +R15 +R14 +L29 +L70 +R99 +L29 +L59 +L41 +R27 +L27 +R91 +L91 +R32 +R68 +L92 +R98 +R92 +R12 +L96 +R86 +L18 +R301 +L20 +L959 +L79 +L25 +L92 +R92 +L52 +L8 +L69 +L71 +L42 +L58 +R41 +R37 +R318 +R82 +R37 +R85 +R523 +L52 +L51 +R80 +L168 +L61 +R39 +L14 +L53 +L43 +L27 +L760 +R87 +R36 +R46 +L882 +R24 +R49 +L522 +L451 +R64 +L658 +L6 +R58 +L75 +L522 +R46 +L7 +L1 +L99 +R66 +L70 +R35 +L31 +L23 +R570 +L847 +R44 +L474 +R91 +R39 +R90 +L94 +R63 +L39 +L66 +L408 +R59 +L66 +L14 +L55 +R66 +L858 +L78 +R23 +L17 +R5 +L56 +L42 +L44 +R71 +L40 +R13 +L83 +R70 +R19 +R76 +L95 +L31 +L69 +R54 +R12 +R10 +R90 +L66 +R39 +R77 +L216 +L77 +R18 +L54 +L87 +L85 +R271 +L93 +R74 +R33 +L72 +L28 +L15 +L959 +R874 +R654 +R14 +L68 +L89 +L811 +L75 +L18 +R82 +L11 +L78 +L31 +R31 +L4 +R66 +L329 +L11 +R96 +L85 +L756 +L877 +R419 +L19 +L218 +R88 +L3 +L55 +L12 +R26 +R16 +L51 +L65 +R85 +L46 +L595 +L548 +L67 +R56 +L23 +L74 +R43 +R18 +R416 +R80 +R31 +L751 +L777 +L1 +L349 +R250 +R826 +R87 +L74 +L8 +L91 +R484 +L83 +L70 +R28 +R69 +L4 +L38 +R68 +L26 +L42 +R56 +R50 +R402 +L92 +L16 +R876 +L94 +R18 +R41 +L44 +L64 +L42 +R9 +R16 +R991 +R23 +L49 +L16 +L65 +L38 +L50 +L62 +L984 +R79 +R27 +L8 +L25 +R83 +L24 +R102 +L374 +L60 +L66 +R13 +L13 +R401 +R33 +R56 +R10 +L23 +R923 +R40 +L37 +L69 +R41 +L781 +L18 +R993 +L82 +L39 +L49 +L49 +L50 +L22 +L29 +R67 +R357 +R504 +L477 +R5 +L96 +R91 +L52 +R374 +L22 +L95 +R895 +L3 +L48 +L49 +L62 +L74 +R836 +R21 +R79 +L766 +R66 +R17 +R83 +R493 +L87 +R49 +R45 +L35 +R33 +R4 +R205 +R90 +R8 +R315 +R80 +L82 +L18 +R64 +R36 +R5 +R66 +L42 +L29 +R77 +L80 +L353 +R56 +L66 +L64 +R30 +L422 +R7 +R75 +L60 +L73 +L27 +R166 +R34 +L48 +R3 +L3 +L994 +L63 +R366 +R53 +R29 +L43 +L8 +L677 +L96 +L54 +R52 +R98 +L93 +L22 +R75 +L17 +R25 +R217 +L62 +L96 +L42 +R210 +R611 +R34 +L74 +R49 +R47 +R23 +R48 +R59 +R93 +L11 +L922 +L67 +L81 +L7 +L12 +L377 +L29 +R115 +R93 +R98 +L240 +R96 +L56 +L51 +R51 +L11 +R11 +L69 +L95 +L98 +R80 +L97 +R94 +L47 +L34 +R23 +R231 +L85 +L96 +L336 +L419 +R38 +L90 +L64 +R64 +R72 +L153 +R105 +L19 +R42 +R53 +R745 +R32 +L77 +L91 +R2 +R492 +L3 +L5 +R2 +R23 +L21 +L12 +L14 +L396 +R23 +L85 +R85 +R250 +R62 +L56 +L43 +R16 +L29 +L84 +L852 +L63 +L155 +L346 +R82 +L959 +L23 +R35 +L35 +L22 +R22 +R7 +R89 +L1 +L69 +L26 +R98 +L85 +L99 +L90 +R76 +L23 +L77 +L26 +R83 +R43 +R24 +L862 +L97 +L71 +L71 +L25 +L33 +L19 +R54 +R34 +L71 +L27 +L36 +L60 +R60 +R62 +R27 +R55 +R56 +L137 +R92 +R45 +R7 +L41 +L13 +R4 +R32 +R92 +R19 +L51 +R69 +L29 +L89 +L69 +L89 +R46 +R53 +L75 +R34 +L76 +L83 +R259 +L69 +R7 +L36 +R9 +L43 +R80 +R43 +L63 +R872 +L64 +R64 +R88 +L77 +R39 +L55 +L15 +R15 +R31 +L693 +R1 +L34 +L41 +R41 +R19 +L19 +L51 +R51 +L7 +L46 +L47 +R92 +R8 +L46 +R46 +L29 +R40 +R689 +L93 +R93 +R34 +R77 +L11 +L24 +R74 +L52 +L398 +R91 +L91 +L55 +R443 +L27 +R39 +L49 +R760 +R96 +L31 +R24 +L91 +L55 +L756 +R622 +R71 +L23 +L68 +L10 +L90 +R4 +L23 +R19 +L61 +R566 +L476 +L95 +L579 +L55 +R60 +L98 +R63 +R275 +R73 +R27 +R482 +L594 +R76 +L64 +L68 +L49 +R17 +R35 +R81 +L56 +R63 +R91 +L41 +L671 +R57 +R41 +R73 +R27 +R45 +R68 +L436 +L5 +R321 +L643 +L50 +R85 +R591 +L76 +L41 +L659 +R22 +R80 +R53 +L47 +L95 +R72 +L11 +R96 +L70 +L82 +L618 +L88 +R88 +R82 +L97 +L85 +L88 +L12 +R619 +L119 +R855 +R60 +R79 +L94 +R44 +R56 +R96 +R52 +L991 +L7 +R50 +R73 +L473 +L759 +L41 +L96 +L97 +L99 +R413 +L31 +L90 +R490 +R257 +L71 +L76 +R4 +L24 +L56 +R205 +L29 +R70 +L70 +L36 +R26 +R10 +R92 +R2 +L93 +L31 +R418 +L91 +R3 +R48 +L88 +L60 +R97 +R754 +R44 +R20 +R55 +R88 +R42 +L36 +R936 +L62 +L54 +L13 +R29 +R56 +R62 +L70 +L86 +L162 +R824 +R458 +L48 +L44 +R51 +L21 +L870 +L95 +R8 +R459 +L893 +L10 +R81 +L42 +L83 +R262 +L31 +R93 +L23 +L376 +R10 +R90 +L5 +R5 +L82 +L18 +R12 +L88 +L69 +R79 +R60 +R399 +R73 +L23 +L17 +R74 +L797 +L263 +L37 +R97 +R57 +R27 +L25 +R14 +L98 +L75 +R44 +R78 +L22 +L81 +L619 +L30 +L70 +L97 +L95 +L90 +R99 +L38 +L79 +R57 +L84 +R11 +R31 +R5 +L98 +R14 +R805 +R59 +R30 +R46 +R84 +R40 +R51 +R32 +R92 +L99 +R16 +L44 +R52 +R38 +L20 +L505 +R65 +L78 +L71 +L829 +L95 +R58 +L563 +R36 +L36 +R20 +L20 +R61 +L61 +L46 +L73 +L72 +R91 +R929 +L33 +R4 +L82 +L18 +L301 +R71 +R79 +R220 +R43 +R81 +L578 +L869 +L408 +L36 +L47 +L255 +R25 +L508 +L64 +R47 +L70 +R55 +L85 +R27 +L43 +L13 +R890 +L361 +L28 +R1 +R6 +R39 +L93 +L556 +L64 +L305 +L90 +R24 +R66 +L1 +R32 +R482 +L27 +R46 +R68 +R10 +R90 +R87 +L464 +R82 +L41 +L64 +R3 +R97 +L35 +R35 +R98 +R602 +R98 +L98 +R51 +L51 +R66 +L266 +L156 +R56 +R45 +L45 +R57 +R36 +R7 +L28 +L61 +L203 +R72 +R220 +R18 +L18 +L9 +L97 +R262 +L56 +R71 +L19 +L52 +R45 +R32 +R778 +L883 +L72 +L86 +R86 +L96 +L12 +R74 +R61 +L79 +R43 +R62 +R72 +L60 +R33 +L98 +L59 +L35 +L906 +R25 +R675 +R97 +R44 +L58 +R4 +R30 +R37 +L64 +L90 +L15 +R15 +L47 +R16 +L41 +L28 +R55 +L55 +R43 +R57 +R75 +L75 +R8 +R817 +L4 +L35 +L240 +L46 +R40 +R70 +R11 +R259 +L93 +L136 +R55 +L125 +R88 +L325 +L44 +R153 +L53 +R24 +R76 +L26 +R80 +R661 +L34 +L44 +L47 +L226 +R36 +L66 +R88 +R346 +R32 +R85 +L32 +L91 +R38 +R574 +R38 +L3 +R91 +R81 +L46 +R39 +L22 +L95 +L40 +L52 +R35 +R27 +R58 +L76 +L28 +L11 +R7 +L99 +R22 +R79 +R42 +R79 +L26 +R4 +L78 +R45 +L45 +R89 +R10 +L37 +R38 +L32 +R4 +L72 +L30 +R32 +L68 +L76 +L26 +L6 +L26 +R4 +R35 +R1 +R60 +R44 +R56 +R24 +L51 +L92 +R13 +L24 +L28 +L2 +R2 +R10 +R44 +R48 +L16 +L45 +R8 +R5 +L11 +L8 +L50 +R49 +L28 +R39 +L12 +R8 +R37 +L2 +R8 +R35 +R21 +R9 +R2 +R17 +L50 +L13 +R46 +L50 +L27 +L45 +L8 +L1 +L39 +R38 +L43 +L37 +R16 +L36 +R39 +R43 +R41 +R1 +R50 +R48 +R8 +R8 +L27 \ No newline at end of file diff --git a/advent_of_code_2025/src/day1/mod.rs b/advent_of_code_2025/src/day1/mod.rs new file mode 100644 index 0000000..8e2a92e --- /dev/null +++ b/advent_of_code_2025/src/day1/mod.rs @@ -0,0 +1,2 @@ +pub mod part1; +pub mod part2; \ No newline at end of file diff --git a/advent_of_code_2025/src/day1/part1.rs b/advent_of_code_2025/src/day1/part1.rs new file mode 100644 index 0000000..6197ad3 --- /dev/null +++ b/advent_of_code_2025/src/day1/part1.rs @@ -0,0 +1,4 @@ + +pub fn solve(input: &str) { + +} \ No newline at end of file diff --git a/advent_of_code_2025/src/day1/part2.rs b/advent_of_code_2025/src/day1/part2.rs new file mode 100644 index 0000000..6197ad3 --- /dev/null +++ b/advent_of_code_2025/src/day1/part2.rs @@ -0,0 +1,4 @@ + +pub fn solve(input: &str) { + +} \ No newline at end of file diff --git a/advent_of_code_2025/src/main.rs b/advent_of_code_2025/src/main.rs new file mode 100644 index 0000000..5694437 --- /dev/null +++ b/advent_of_code_2025/src/main.rs @@ -0,0 +1,4 @@ +use paste::paste; +mod utility; + +solve_day!{1} diff --git a/advent_of_code_2025/src/utility/inputstring.rs b/advent_of_code_2025/src/utility/inputstring.rs new file mode 100644 index 0000000..e9653ef --- /dev/null +++ b/advent_of_code_2025/src/utility/inputstring.rs @@ -0,0 +1,10 @@ +use std::fs::read_to_string; + +pub fn get_input_string(day: u8) -> String { + read_to_string(format!("src/day{}/input.txt", day)).expect("Failed to read input file.") +} + +pub fn get_test_string(day: u8, file: Option<&str>) -> String { + let filename = file.unwrap_or("test.txt"); + read_to_string(format!("src/day{}/{}", day, filename)).expect("Failed to read input file.") +} \ No newline at end of file diff --git a/advent_of_code_2025/src/utility/mod.rs b/advent_of_code_2025/src/utility/mod.rs new file mode 100644 index 0000000..cd9db7a --- /dev/null +++ b/advent_of_code_2025/src/utility/mod.rs @@ -0,0 +1,6 @@ +#![allow(unused)] + +mod inputstring; +pub use inputstring::{get_input_string, get_test_string}; + +mod solveday; \ No newline at end of file diff --git a/advent_of_code_2025/src/utility/solveday.rs b/advent_of_code_2025/src/utility/solveday.rs new file mode 100644 index 0000000..e0b627b --- /dev/null +++ b/advent_of_code_2025/src/utility/solveday.rs @@ -0,0 +1,30 @@ +#[macro_export] +macro_rules! solve_day { + ($day:literal) => { + paste! {mod [];} + + pub fn main() { + println!("-- Day {} --", $day); + let input = utility::get_input_string($day); + paste! { [] ::part1::solve(&input) }; + paste! { [] ::part2::solve(&input) }; + } + }; + ($day:literal, $filename:literal) => { + paste! {mod [];} + + pub fn main() { + println!("-- Day {} --", $day); + let input = utility::get_test_string($day, Some($filename)); + paste! { [] ::part1::solve(&input) }; + paste! { [] ::part2::solve(&input) }; + } + }; +} + +#[macro_export] +macro_rules! test_day { + ($day:literal) => { + solve_day!($day, "test.txt"); + }; +}