George Thomas
be0bfd0545
Pass is_real_data to parsers
...
As in Haskell, we'll need this for some awkward problems.
2026-01-14 01:03:07 +00:00
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
6ec723ea69
Minor refactor
2026-01-13 12:00:45 +00:00
George Thomas
b7cda0a0ec
Always show Rust test timings
...
Matches the Haskell now that we're no longer using Sydtest.
2026-01-13 12:00:45 +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
50e3119aef
Minor refactor
2025-12-23 15:13:25 +00:00
George Thomas
6f5a56acd9
Simplify test result printing
2025-12-23 15:11:52 +00:00
George Thomas
f3247b2e9c
Combine test result printing in to single expression
2025-12-23 13:43:09 +00:00
George Thomas
d80fdfabdd
Avoid printing redundant space
2025-12-23 12:18:05 +00:00
George Thomas
6bc342ba22
Format
2025-12-23 11:31:41 +00:00
George Thomas
1d552fab86
Simplify Rust test newline handling
2025-12-23 11:31:22 +00:00
George Thomas
4c05c068fa
Show duration for long-running Rust tests
...
This roughly matches Tasty's behaviour.
2025-12-23 11:00:32 +00:00
George Thomas
4dc49febe4
Refactor puzzle existential wrapper to take callback
...
This gives us more flexibility to do things between the parts.
2025-12-23 10:59:18 +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
George Thomas
238e26dccf
Move all Rust stuff in to subdirectory
2025-12-02 18:38:21 +00:00
George Thomas
3a00dc568f
Rename Rust source folder
2025-12-02 18:38:09 +00:00