A Rust template for Advent of Code that I made to easily run any day or combination of days and measure the execution time.
Each day has a solve()
function that returns a pair of Solution
. The type Solution
is an enum that can contain any integer or a string.
You can create a Solution
by specifying its type, for example Solution::U32(value)
, or by using the From trait which is implemented for all supported types, for example, Solution::from(value)
.
To run: cargo run --release [days...]
The project has a few extra utilities and goodies available in the etc
module:
DOUBLE_NEWLINE
: A platform-specific constant to allow splitting input strings on double newlines.Grid
: A two-dimensional matrix with some utilities to check for bounds, provide a default for OOB access, find and enumerate elements, etc.Point
: A representation of a discrete point in 2D space. It includes utilities for distance calculation, moving in the cardinal directions, listing neighboring points, and so on. APoint
can also be used to index aGrid
.