25 Commits

Author SHA1 Message Date
George Thomas
19d402ec8f Refactor to use filter_map 2026-01-13 14:16:43 +00:00
George Thomas
cb7b821434 Move to avoid allocation 2026-01-13 14:16:40 +00:00
George Thomas
2462a30b1d Solve day 7 in Rust 2026-01-12 18:51:39 +00:00
George Thomas
3daa7a1ad1 Solve day 6 in Rust 2026-01-12 18:51:39 +00:00
George Thomas
bb6bd7ff25 Rename function 2026-01-07 15:06:48 +00:00
George Thomas
5e7baf8cc5 Use itertools to chain sorting in day 5 2026-01-07 15:02:13 +00:00
George Thomas
3d2785b7d3 Make Rust day 5 vector operations more efficient
We do more in-place and operate on the end of the vector to avoid quadratic complexity.
2026-01-07 14:45:55 +00:00
George Thomas
70b56f4501 Use new type for day 5 ranges
This is cleaner and faster, with inherent methods and mutability.
2026-01-07 14:29:47 +00:00
George Thomas
88c138baf0 Solve day 5 in Rust 2026-01-07 14:05:58 +00:00
George Thomas
bf1cac4e94 Use proper Nom number parsing functions
This was previously a documentation/discoverability issue, rather than a conscious choice to avoid these.
2026-01-07 13:41:03 +00:00
George Thomas
9fdd0cc28e Solve day 4 in Rust 2025-12-22 19:00:09 +00:00
George Thomas
3114920494 Remove redundant constraint 2025-12-22 14:53:22 +00:00
George Thomas
4a3506a58d Swap findMax result tuple order 2025-12-19 15:57:11 +00:00
George Thomas
17f4b83fc0 Dereference at call site 2025-12-19 15:57:06 +00:00
George Thomas
73ea25236f Improve error handling by not panicking in helper function 2025-12-19 15:34:13 +00:00
George Thomas
83e957d5f9 Fix day 3 error case
This doesn't actually matter for the input data given, but it ensures we get the right error when the battery list is too short, instead of unwrapping.
2025-12-19 15:14:39 +00:00
George Thomas
2258f965c1 Solve day 3 in Rust 2025-12-19 14:51:36 +00:00
George Thomas
a321ce3f22 Revert "Minor refactor (inlining)"
This reverts commit bb57673f8a01e77e42c38bbf5bab60fba8c63098.

Actually, the symmetry with `is_repetition_2` is worth the slight extra verbosity.
2025-12-18 13:01:07 +00:00
George Thomas
bb57673f8a Minor refactor (inlining) 2025-12-18 13:00:55 +00:00
George Thomas
dc36ba47ff Avoid unnecessary slice operator 2025-12-17 14:25:10 +00:00
George Thomas
437c2f290d Use strings for output types in Rust
This is a compromise that gets us most of the way towards what we have with the heterogeneous list in Haskell, but without any complex abstractions.
2025-12-16 17:38:53 +00:00
George Thomas
c4c2c82f81 Remove redundant type annotation 2025-12-10 21:58:57 +00:00
George Thomas
415ed20dd5 Use Nom for Rust parsing 2025-12-10 12:39:12 +00:00
George Thomas
fa6f734286 Solve day 2 in Rust 2025-12-10 10:51:30 +00:00
George Thomas
abda4f84d8 Solve day 1 in Rust 2025-12-09 19:18:28 +00:00