lib/scroll_hat/font.ex
defmodule ScrollHat.Font do
@callback char_matrix(char(), brightness :: 1..255) :: list()
@empty [[], [], [], [], [], [], []]
def text_to_canvas(text, font \\ Big, brightness \\ 100) do
for c <- String.to_charlist(text), reduce: @empty do
acc ->
Enum.zip_with(acc, font.char_matrix(c, brightness), &(&1 ++ &2))
end
end
end