1
0
Fork 0
advent-of-code/2021/lib/advent_of_code/puzzle_solver.ex

19 lines
388 B
Elixir
Raw Normal View History

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