Current section

Files

Jump to
bin_codex lib codex base base16.ex
Raw

lib/codex/base/base16.ex

defmodule Codex.Base.Base16 do
import Codex
@numbers 48..57 |> Enum.map(&:binary.encode_unsigned/1)
@capitals 65..70 |> Enum.map(&:binary.encode_unsigned/1)
@num_to_char (@numbers ++ @capitals)
|> Enum.with_index()
|> Enum.map(fn {char, num} -> {num, char} end)
|> Enum.into(%{})
@spec codec() :: Codex.codec(String.t())
def codec(), do: list(list_of(2, bits(4) |> mapping(@num_to_char)) |> join()) |> join(2)
end