a691461882
* chore: scaffold project * chore: stand up puzzle solver, puzzle case * feat: solution runner * feat: solution generator
18 lines
388 B
Elixir
18 lines
388 B
Elixir
defmodule AdventOfCode.PuzzleSolver do
|
|
@moduledoc """
|
|
Behaviour for a puzzle solution.
|
|
"""
|
|
|
|
@doc """
|
|
Given the input as a stream, return the solution as a string
|
|
"""
|
|
@callback solve(Enumerable.t()) :: String.t()
|
|
|
|
def solve(mod, stream), do: apply(mod, :solve, [stream])
|
|
|
|
defmacro __using__(_) do
|
|
quote do
|
|
@behaviour AdventOfCode.PuzzleSolver
|
|
end
|
|
end
|
|
end
|