Packages

Elixir utils.

Retired package: Deprecated - Use instead antl_utils_* packages

Current section

Files

Jump to
antl_utils lib elixir string.ex
Raw

lib/elixir/string.ex

defmodule AntlUtils.Elixir.String do
@alphabets %{
62 => "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
64 => "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"
}
@spec to_integer(binary, 62 | 64) :: integer
def to_integer(string, base) when is_binary(string) and base in [62, 64] do
String.codepoints(string)
|> Enum.reduce(0, fn letter, acc ->
acc * base + (:binary.match(Map.get(@alphabets, base), letter) |> elem(0))
end)
end
end